斐波那契数是第一个数和第二个数都为1,从第三个数开始,后面的是是前面相邻两个数的和。定义的函数如下所示:
int fib(int m)
{
if (m == 1 || m == 2)
return 1;
else
{
return (fib(m - 1) + fib(m - 2));
}
}
if语句为了确定第一位和第二位都为1,。完整的代码如下所示:
#include <stdio.h>
#include <stdlib.h>
int fib(int m)
{
if (m == 1 || m == 2)
return 1;
else
{
return (fib(m - 1) + fib(m - 2));
}
}
int main()
{
int m = 1; int n = 1; int i; int Fib = 1;//定义前两个数为m,n初值都为1
printf("%8d", m);
printf("%8d", n);
for (i = 3; i <= 30; i++)//只打印前30个
{
Fib = m + n;
n = m;
m = Fib;
printf("%8d", Fib);
if (i % 5 == 0)
printf("\n");
}
printf("\n");
printf("\n");
for (i = 1; i <= 30; i++)//只打印前30个
{
printf("%8d", fib(i));
if (i % 5 == 0)
printf("\n");
}
printf("\n");
system("pause");
return 0;
}
在main函数中,用两种方法打印了斐波那契数,第一种是普通的方法,而第二种调用了递归函数。
if(i%5==0)
printf("\n");是为了每五位打印一个换行,这样看起来整齐。