/*
斐波那契数列
*/
#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;
}