递归调用函数
为了描述问题得某一状态,得用到它的上一状态,而上一状态,又得用到它的上一状态,这种用自己来定义自己的方法,称为递归定义。
递归结束条件,得有一个条件结束递归,不然会无穷递归。
优点:
简化算法。化繁为简,
缺点:
不节省存储空间,运行效率也不高。
void m(int a)
{
if (a<0) {
printf("stop\n");
}else{
a--;
printf("%p %d\n",&a,a);
m(a);
}
return;
}
int main(int argc, const char * argv[]) {
m(10);
return 0;
}
输出结果为:
0x7fff5fbff88c 9
0x7fff5fbff86c 8
0x7fff5fbff84c 7
0x7fff5fbff82c 6
0x7fff5fbff80c 5
0x7fff5fbff7ec 4
0x7fff5fbff7cc 3
0x7fff5fbff7ac 2
0x7fff5fbff78c 1
0x7fff5fbff76c 0
0x7fff5fbff74c -1
stop
int f1(int n)
{
if (n==1||n==2) {
return 1;
}
else{
return f1(n-1)+f1(n-2);
}
}
int main(int argc, const char * argv[]) {
int a;
a=f1(10);
printf("%d\n",a);
return 0;
}
输出结果为:55
时间: 2024-10-24 08:47:55