斐波那契数列
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…
递归法:
#include<stdio.h>
int F(int n)
{
if (n <= 2)
return 1;
else
return F(n-1) + F(n-2);
}
int main()
{
int n;
printf("请输入希望输出的斐波那契数列项数:");
scanf("%d",&n);
int i;
for (i = 1; i <= n; i++)
{
printf("%d\t", F(i));
if (i%5 == 0) //每五项进行一次换行
printf("\n");
}
return 0;
}
一般方法:
输出指定数量的斐波那契数列
#include <stdio.h>
int main()
{
int i, n;
int t1 = 1, t2 = 1, nextnum;
printf("输出几项: ");
scanf("%d", &n);
printf("斐波那契数列: ");
for (i = 1; i <= n; ++i)
{
printf("%d\t", t1);
nextnum = t1 + t2;
t1 = t2;
t2 = nextnum;
}
return 0;
}
输出指定数字前的斐波那契数列
#include <stdio.h>
int main()
{
int t1 = 1, t2 = 1, nextnum = 0;
int n;
printf("输入一个正数: ");
scanf("%d", &n);
// 显示前两项
printf("斐波那契数列: %d, %d, ", t1, t2);
nextnum = t1 + t2;
while(nextnum <= n)
{
printf("%d\t",nextnum);
t1 = t2;
t2 = nextnum;
nextnum = t1 + t2;
}
return 0;
}