打印斐波那契(Fibonacci)数列

/*
需求:打印 Fibonacci数列

思路:
当前项的值等于前两项数值的和
F=(F-1)+F(F-2)

样例:
输入:10
输出:1 1 2 3 5 8 13 21 34 55
*/

//辗转相加法实现

include

int main()
{
int num, f, f1, f2, i;
scanf("%d", &num); //用户输入打印的次数
f1 = f2 = 1;

for(i = 1; i <= num; i++)    //打印的次数
{
    if(i==1 || i==2)    //第一项第二项数值都是 1
        printf("%d  ", f1);
    else    
        {
            f = f1+f2;
            f1 = f2;    //    移动数值
                            f2 = f;
            printf("%d  ", f);
        }
}
return 0; 

}

//递归实现

include

int fibo(int);
int main()
{
int num, i;
scanf("%d", &num);
for(i = 1; i <= num; i++)
printf("%d ", fibo(i));
return 0;
}
int fibo(int n)
{
if(n==1 || n==2)
return 1;
else
return fibo(n-1)+fibo(n-2);
}

你可能感兴趣的:(打印斐波那契(Fibonacci)数列)