爱问知识人 爱问教育 医院库

一个程序的问题!

首页

一个程序的问题!

有一个数列:1,1,2,3,5,8,13,21,34,……
用C编一个程序,输出1--1000之间的这样的一个数列。
我写了一个程序,如下:
(算法是这样的:1+1=2,1+2=3,2+3=5,3+5=8……)
main()
{int k,m,j,i;
 int b[1000];
 int *p;
 int a[1000];
 p=&a;
 for(i=0;i<1000;i++)
 {m=*p+*(p+i);
  for(j=i+1;j<1000;j++)
     {if(a[j]==m)
  {for(k=0;k<=j;k++,p++)
     
     b[k]=*p;
  }
       else
   continue;
     p=p+j;
     }
  
 }
 for(k=0;k<1000;k++)
    printf("\n%d  \n",b[k]);高手指点!麻烦拉!

提交回答
好评回答
  • 2006-12-17 21:05:20
      你是指要输出的数的值小于1000呢,还是指要输出这个数列的前1000个值呢?如果是前者:
    int main()
    {
    	int n_1 = 0;
    	int n_2 = 0;
    	int cur = 1;
    	while( cur < 1000 )
    	{		
    		printf( "%d ", cur );
    		n_2 = n_1;
    		n_1 = cur;
    		cur = n_1 + n_2;
    	}	
    	printf("\n");
    }
    其中n_1是指前一个数,n_2是指前两个数,cur是指数列当前的数。
       如果是后者: int main() { int n_1 = 0; int n_2 = 0; int cur = 1; int i = 0; for( i=0; i<1000; i++ ) { printf( "%d ", cur ); n_2 = n_1; n_1 = cur; cur = n_1 + n_2; } printf("\n"); } 但是实际上这个数列的值增长非常快,用int型数据是表示不下的,很快就溢出了。
      

    绯***

    2006-12-17 21:05:20

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 173-192
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):