当前位置: 代码迷 >> C语言 >> [求助]分析这个 程序
  详细解决方案

[求助]分析这个 程序

热度:454   发布时间:2006-01-28 21:21:00.0
[求助]分析这个 程序
这个十关于Fibonacci数列程序,我不明白第4行到末尾为什么这样写
main()
{
long int f1,f2;
int i;
f1=1;f2=1;
for(i=1;i<=20;i++)
{
printf("%12ld%12ld",f1,f2);
if(i%2==0)printf("\n");
f1=f1+f2 ;
f2=f2+f1;
}
}
----------------解决方案--------------------------------------------------------

给两个不同的算法参考

1、#include <stdio.h>
void main()
{
int a,b,c,cnt;//a是第一个数,b是第二个数,c是第三个数,cnt用来控制while循环的结束
a=0;b=1;c=0;cnt=0;
do
{
c=a+b;//第三个数等于前两个数之合
printf("%d,",b,c);
//如果要求第四个数,那就要把所谓的第一个数和第二个数往前移动,
//即原第二个数应该变为第一个数:a=b,原第三个数应变为第二个数:b=c
a=b;
b=c;
cnt++;
}while(cnt<=10);
}


2、 1 n=0
Fib(n)= 1 n=1
Fib(n-2)+Fib(n-1) n>1

#define NUM 20
main()
{
int I;
static int fib[NUM]={1,1};
for (i=2;i<NUM;i++)
fib[i]=fib[i-2]+fib[i-1];
for (i=0;i<NUM;i++)
{
if (i%5==0) printf("\n");
printf("%5d",fib[i]):
}
}


----------------解决方案--------------------------------------------------------
楼上的大哥好厉害,
第二个算法我得好好消化。
----------------解决方案--------------------------------------------------------
二楼说的我还没有 学到,我汗
----------------解决方案--------------------------------------------------------
汗~~这个我也做过,我怎么看楼主写的有点问题呢?我在看下多。
----------------解决方案--------------------------------------------------------
1楼是对了,看懂了,2楼的你写的太多了吧,我看了下都觉得头晕,不想看了啊,写C要越简单越好的啊
----------------解决方案--------------------------------------------------------
2楼的怎么写到这了都不知道写递归调用函数呢!!!!!
----------------解决方案--------------------------------------------------------
  相关解决方案