递归的简单用法
1 #include<stdio.h> 2 int sum(int n)//递归函数 3 { 4 if (n == 1) 5 return 1; 6 else 7 return n + sum(n - 1); 8 } 9 void main() 10 { 11 printf("sum=%d\n", sum(10));
编译后运行答案为:55
解题思路:
1.这类题需要首先要看主函数main()需求什么?
2.接着判断if要如何执行?再判断如何进入else?判断如何结束这个程序?
3.sum(n-1)要什么时候为零?是否当他为零时会跳出这个程序?
注意:
为了防止递归调用无休止的进行,必须在函数内终止递归调用的手段。
常用的方法是增加条件判断,满足某一条件则不再继续递归调用,然后逐层返回。