C语言 前n项斐波那数列,小于一个数的斐波那数列项

//斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
//144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........
//
//这个数列从第3项开始,每一项都等于前两项之和。
#include
void printFeibonacci(int);
void main()
{
    int n=20;//前n项斐波那契数列数列
    printf("斐波那数列的前%d项:\n",n);
    printFeibonacci(n);//输出前n想斐波那数列
    int max=100;//最大的斐波那数列
    printf("-----------------------------------------\n");
    printf("%d之前的斐波那数列:\n",max);
    printFeibonacciBeforeNum(100);
}
void printFeibonacci(int n)//输出前n项斐波那数列
{
    int first=1;
    int second=1;
    int third=0;
    int i;
    for(i=1;i<=n;i++)
    {
        if(i<=2)
            printf("%-6d",1);
        else
        {
            third=first+second;
            printf("%-6d",third);//第三项等于前两项之和
            first=second;//前移第一项
            second=third;//前移
        }
        if(i%10==0)
            printf("\n");
    }
}
void printFeibonacciBeforeNum(int num)//输出数字num之前的的斐波那数列
{
    int first=0;
    int second=1;
    int nextNum=0;//2
    nextNum=first+second;//求出下一项,1
    printf("%-6d",second);//输出
    int count=1;
    while(nextNum<=num)
    {
        printf("%-6d",nextNum);//输出
        first=second;//
        second=nextNum;
        nextNum=first+second;
        if((++count)%10==0) printf("\n");
    }

}

结果:

斐波那数列的前20项:
1     1     2     3     5     8     13    21    34    55
89    144   233   377   610   987   1597  2584  4181  6765
-----------------------------------------
100之前的斐波那数列:
1     1     2     3     5     8     13    21    34    55
89



你可能感兴趣的:(C语言 前n项斐波那数列,小于一个数的斐波那数列项)