
递归,就是在运行过程中不断调用自己,
一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶了多少鸭子?经过每个村子卖出多少只鸭子?
#include<stdio.h>
double fun(int n)
{
double m;
if(n==7)
{
m=2;
}
else
{
m=(fun(n+1)+1)*2;
}
return m;
}
int main()
{
printf("第七个=%lf\n",fun(7));
printf("第6个=%lf\n",fun(6));
printf("第5个=%lf\n",fun(5));
printf("第4个=%lf\n",fun(4));
printf("第七个=%lf\n",fun(3));
printf("第七个=%lf\n",fun(2));
printf("第七个=%lf\n",fun(1));
printf("总有=%lf\n",fun(0));
return 0;
}

本文介绍了一个有趣的递归算法问题,通过一个关于卖鸭子的故事,探讨了如何使用递归函数逆向计算初始鸭子数量。文章详细解释了递归函数的工作原理,并提供了完整的C语言代码实现。
1021

被折叠的 条评论
为什么被折叠?



