C의 재귀
재귀 함수 자체에 사용 된 함수의 정의 방법을 말한다.
예를 들면 :
산 번 있었다, 사원이 있었던 산, 사원은 젊은 스님 그것에 이야기를하고, 옛 스님이있다! 무슨 이야기인가? 젊은 스님에 대한 이야기를했다 "는 산, 사원이 있었던 산, 성전은 옛 스님이 한 번 있었다 그것! 무슨 이야기입니까? '산 번 있었다, 사원이 있었던 산, 성전, 옛 스님입니다있다 젊은 스님 그것에 이야기! 무슨 이야기? ... ''
다음 구문은 다음과 같습니다
void recursion() { recursion(); /* 函数调用自身 */ } int main() { recursion(); }
C 언어 지원 재귀이며, 그 함수는 자신을 호출 할 수 있습니다. 재귀를 사용하는 경우에는, 프로그래머는 함수의 정의는 달리 무한 루프에 들어갈 것이다 조건으로 종료 주목해야한다.
많은 수학 문제를 해결 재귀 함수 등 피보나치 수를 생성하고, 같은 숫자의 계승의 계산과 같은 중요한 역할을했다.
번호 계승
다음의 예는 소정 숫자의 계승을 계산하는 재귀 함수를 사용
#include <stdio.h> double factorial(unsigned int i) { if(i <= 1) { return 1; } return i * factorial(i - 1); } int main() { int i = 15; printf("%d 的阶乘为 %f\n", i, factorial(i)); return 0; }
상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를
15 的阶乘为 1307674368000.000000
피보나치 수
다음 예제 열의 소정 수를 생성하기 위해 재귀 함수를 사용 피보나치 :
#include <stdio.h> int fibonaci(int i) { if(i == 0) { return 0; } if(i == 1) { return 1; } return fibonaci(i-1) + fibonaci(i-2); } int main() { int i; for (i = 0; i < 10; i++) { printf("%d\t%n", fibonaci(i)); } return 0; }
상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를
0 1 1 2 3 5 8 13 21 34