C 언어 귀환 의 한 노 타 와 개구리 계단 뛰 기 문제
2530 단어 C 언어귀착 하 다한 노 타개구리 가 계단 을 뛰어넘다
1.재 귀적 종료 조건
2.매번 진행 과정 에서 조건 과 점점 가 까 워 져 야 한다.
3.서로 인접 한 두 번 의 재 귀 호출 간 의 관련 관계
한 노 타 문제:
막대기 가 세 개 있 습 니 다.A,B,C.A 레버 에 N 개(N>1)피 어 싱 원반 이 있 습 니 다.디스크 의 사 이 즈 는 아래 에서 위로 순서대로 작 아 집 니 다.아래 규칙 에 따라 모든 원반 을 C 레버 로 옮 겨 야 합 니 다.
1.매번 원반 하나만 움 직 일 수 있다.
2.큰 접시 가 작은 접시 위 에 접 히 면 안 되 고 원반 을 임시로 B 대 에 놓 을 수도 있 으 며 A 대 에서 옮 긴 원반 을 다시 A 대로 옮 길 수도 있 지만 상기 두 가지 규칙 을 지 켜 야 한다.이동 을 구 하 는 과정.
int step = 0; // step
void move(int i,char form,char to){
printf(" %d , %d %c %c
", ++step,i,form, to);
}
void Hanio(int n,char a,char b,char c){
if (n == 0)
{
return;
}
Hanio(n - 1,a,c,b); // n-1 A C B
move(n, a, c); // A n C
Hanio(n - 1, b, a, c); // B n-1 A C
}
int main(){
int n;
printf(" :
");
scanf("%d", &n);
Hanio(n, 'A', 'B', 'C'); // n A B C
system("pause");
return 0;
}
실행 결과:개구리 계단 뛰 어 넘 기 문제:
개구리 한 마 리 는 한 번 에 1 단 계단 을 뛰 어 올 라 갈 수도 있 고 2 단 계단 을 뛰 어 올 라 갈 수도 있다.이 개구리 가 n 급 계단 을 뛰 어 올 라 가 는 데 는 모두 몇 가지 점프 방법 이 있 습 니까?
n=1,1 중 점프 만 가능 합 니 다.n=2 시 에는 두 가지 점프 방법 이 있다.n=3 시 에는 세 가지 점프 법 이 있다.n=4 시 에는 5 가지 점프 법 이 있다.n=5 시 에는 8 가지 점프 법 이 있다.f(n)=f(n-1)+f(n-2)로 요약 할 수 있 으 며,본질 적 으로 피 보 나치 수열 과 같다.
int Frog(int n){
if (n <= 2 && n >= 0)
{
return n;
}
else if (n < 0)
{
printf("
");
return n;
}else
{
return Frog(n - 1) + Frog(n - 2);
}
}
int main(){
int n;
printf(" :
");
scanf("%d", &n);
int result = Frog(n);
if(n >= 0){
printf(" %d
", result);
}
system("pause");
return 0;
}
실행 결과C 언어 재 귀적 인 한 노 타 문제 와 개구리 가 계단 을 뛰 어 내 리 는 문제 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C 언어 재 귀적 인 한 노 타 개구리 가 계단 을 뛰 어 내 리 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.