作业帮 > 综合 > 作业

以下程序的输出结果是#includeint fun(int n,int *s){ int f1,f2;if(n==0||

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/06/28 15:43:54
以下程序的输出结果是
#include
int fun(int n,int *s)
{ int f1,f2;
if(n==0||n==1)
*s=1;
else
{fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}}
void main()
{
int x;
fun(6,&x);
printf("\n%d",x);
}
..
以下程序的输出结果是#includeint fun(int n,int *s){ int f1,f2;if(n==0||
其实,就是 斐波那契数列
1,1,2,3,5,8,13……
结果当然是数列中第n个数字是多少(假设编号从0开始)
这个程序的意思是:
求的结果*s 是 n-1的*s 加上 n-2的 *s
转换成数学中文版就是:有这么一个数列,第0个数字和第一个数字都是1
从第2个数字开始,结果等于本书列前两项之和.
此递归函数完美的说明了这个问题,
递归函数最简单的理解是:你只管你直观的思维,只要知道这个数字等于前两项之和就行了,直接把它写出来就行了,具体它怎么实现的,你不用去管,只管让计算机自己去做就成了!