c语言 谁能给我讲一下

来源:百度知道 编辑:UC知道 时间:2024/06/19 20:37:51
#include <stdio.h>
void Fun(int n , int *s)
{ int f1, f2;
if (n == 1 || n == 2) *s = 2;
else
{ Fun(n – 1, &f1);
Fun(n – 2, &f2);
*s = f1 + f2;
}
}
main( )
{ int x;
Fun(6, &x); printf(“%d”, x);
}

#include "stdio.h"
#include "stdlib.h"
#include "math.h"

void Fun(int n ,int *s)
{ int f1, f2;
if (n == 1 || n == 2) *s = 2;
else
{ Fun(n-1, &f1);
Fun(n-2, &f2);
*s = f1 + f2;
}
}

void main( )
{
int x;
Fun(6, &x);
printf("%d", x);
}
给你改了,你从哪拷贝的题,真垃圾,运行结果x=16

应该是个递归函数 就是不断调用Fun()本身 但是好像这个程序有点问题。

输出16
这是斐波那挈数列:2,2,4,6,10,16

每一项等于前两项之和,这是用递归和指针完成的。
你可以从 n=1 ,n=2往后想,直到n=6

这个程序不是有点问题,而是有很大的问题。

是递归调用,但你的程序有很大的问题