7-6 输出Fibonacci数列的前n项 (20 分)
已知Fibonacci数列的规律是1,1,2,3,5,8,…,即数列的前两项是1,其后的每一项都是其前两项的和。输出Fibonacci数列的前n(1<=n<=40)项。要求定义并调用含静态变量的函数Fibonacci(n)计算Fibonacci数列的第n项。
输入格式:
输入n值
输出格式:
以每行4个的格式输出Fibonacci数列的前n项。每项占10位列宽并左对齐。
输入样例:
在这里给出一组输入。例如:
10
结尾无空行
输出样例:
在这里给出相应的输出。例如:
1 1 2 3
5 8 13 21
34 55
结尾无空行
#include<stdio.h>
void Fabonacci(int n)
{
static int a = 1, b=1,c, i = 1;
if (n == 0)//递归结束条件
return;
if (i<=2) //数列前两项为1
{
printf("%-10d",a);//-表示左对齐,10为字段长度
}
else//数列规则
{
c = b; //用c储出上一个递归的数
b = a; //用b获取本次递归的数
a = a + c;//用a获取该打印的数
printf("%-10d",a);
}
i++;
if (i % 4 ==1 ) //没输出4个数换行
printf("\n");
Fabonacci(n - 1);
}
int main()
{
int n;
scanf("%d",&n);
Fabonacci(n);
return 0;
}
问题总结
数列规则的思考。