斐波那契数列(辅助数组)

#include<stdio.h>
#include<stdlib.h>
#define Size 3
void Fib(int n)
{
    long *S=(long*)malloc(Size*sizeof(long));//开辟一片连续存储空间, 作为辅助空间使用
    S[0]=S[1]=1;//预置数列前两项为1
    if(n==1)
    {
        printf("%ld\n", S[0]);
    }
    else if(n==2)
    {
        printf("%ld %ld\n", S[0], S[1]);
    }
    else//n>=3
    {
        int i=3;//计数变量
        S[2]=2;
        printf("%d %d ", 1, 1);
        while(i<=n)//从第三项开始计算, 一直到第n项
        {
            printf("%ld ", S[2]);
            //数据更新
            S[0]=S[1];
            S[1]=S[2];
            S[2]=S[1]+S[0];
            //
            i++;
        }
        printf("\n");
    }
    return ;
}
int main()
{
    int n;
    scanf("%d", &n);//输入项数n
    if(n>=1)
    {
        Fib(n);
    }
    else//数据不合法
    {
        printf("error!\n");
    }
    return 0;
}

 

猜你喜欢

转载自blog.csdn.net/weixin_42048463/article/details/115016523
今日推荐