C语言:利用函数递归求斐波那契数列,输出该数列的前17项,每行输出5个数。

2024-11-27 16:31:03
推荐回答(2个)
回答1:

#include
#define COL 5 //一行输出5个
long fibonacci(int n)
{ //fibonacci函数的递归函数
if (0==n||1==n) { //fibonacci函数递归的出口
return 1;
}
else {
return fibonacci(n-1)+fibonacci(n-2);
//反复递归自身函数直到碰到出口处再返回就能计算出第n项的值
}
}
int main(void)
{
int i,n;
n= 17;
printf("Fibonacci数列的前%d项\n", n);
for (i=0; i{
printf("%-10ld",fibonacci(i++)); //调用递归函数并且打印出返回值
if(i%COL==0)
{ //若对COL取余等于0就换行,也就是控制每行输出多少个,
//而COL=10就是每行输出10个
printf("\n");
}
}
printf("\n");
return 0;
}

回答2:

int a[101],i;
a[1]=a[2]=1;
for (i=3;i<17;i++)
{
a[i]=a[i-1]+a[i-2];
}
for (i=1;i<17;i++)
{
printf ("%-8d",a[i]);
if (i%5==0) printf ("\n");
}
看看能通过吗