Fibonacci (斐波那契数列)-循环,递归实现方式
#include<stdio.h>
long fibonacci(int );
long fibonacci_loop(int );
int main(void)
{
int n, m ,i ;
m = n = i=0 ;
printf("Please inpu a number: \n");
scanf("%d",&m);
//循环实现
printf("Fibonacci sequence is : ");
fibonacci_loop(m);
printf("\n");
//递归实现
printf("Fibonacci sequence is : ");
for(n=1; n<=m ; n++)
printf("%ld ",fibonacci(n));
printf("\n");
return 0 ;
}
//循环
long fibonacci_loop(int num )
{
int i , k1 ,k2 ,temp;
k1 = k2=1;
for(i=0;i<num; i++)
{
if(i==0)
printf("%d ",k1);
else
{
temp = k1 + k2;
k1 = k2;
k2 = temp;
printf("%ld ",k1);
}
}
return 0 ;
}
//递归
long fibonacci(int num )
{
if(num>2)
{
return fibonacci(num-1)+fibonacci(num-2) ;
}
else
{
return 1 ;
}
}