18、斐波那契数列

/*
斐波那契数列
*/
#include <stdio.h>
#include <stdlib.h>

int fn(int a1,int a2,int n)
{
    if(n > 0)
    {
        printf(" %d",a1 + a2);
        return fn(a2,a1 + a2,n - 1);
    }
}
int getFibo1(int n)
{
    if(1 == n)
        printf("%d",1);
    else
    {
        printf("%d %d",1,1);
    }
    fn(1,1,n - 2);//输出第三项到第n项
}
int main()
{
    int getFibo2();
    int n = 0;
    scanf("%d", &n);
    while(0 != n)
    {
        getFibo1(n);
        printf("\n");
        getFibo2(n);
        scanf("%d", &n);
    }
    return 0;
}
int getFibo2(int n)
{
//    假设第0项是0,第一项为1,第二项为第一项与第0项之和
    int preItem = 0;
    int latterItem = 1;
    if(n <= 0)
        return 0;
    for(int i = 1;i <= n;i++)
    {
        printf("%d ",latterItem);
        latterItem  += preItem;
        preItem = latterItem - preItem;
    }
    return 1;
}

posted @ 2021-09-22 21:36  叶梓渔  阅读(55)  评论(0)    收藏  举报