作业帮 > 综合 > 作业

C++ 按位斐波那契数列

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/14 05:30:46
C++ 按位斐波那契数列
do
{
++x;
if (a[x]==0&&b[x]==0) break;
a[x]+=b[x];
if (a[x]>=10)
{
a[x]-=10;
++a[x+1] ;
}
}while (true) ;
for ( y=x-1 ; y>=0 ; --y )
{
cout i;
for (j=1 ; j=10)
{
a[x]-=10;
++a[x+1] ;
}
}while (true) ;
for ( y=x-1 ; y>=0 ; --y )
{
cout =0 ; --y )
{
cout
关键加法部分代码未贴出,问题应该不在这部分代码.
再问: 代码补充好了
再答: case 少了break导致 算法没问题#include<iostream>
using namespace std;
int main(){
 int a[2000]={1},b[2000]={1},i,j ;
 int x=-1 ;
 int y ;
 cin>>i;
 for (j=1 ; j<=i ; ++j){
  switch (j%2){
  case 1 :{
   do{
    ++x;
    if (a[x]==0&&b[x]==0) 
     break;
    a[x]+=b[x];
    
    if (a[x]>=10){
     a[x]-=10;
     ++a[x+1] ;
    }
   }while (true) ;
   for ( y=x-1 ; y>=0 ; --y ){
    cout << a[y] ;
   }
   cout << endl ;
   x=-1;
    }
   break;//加break
  case 0 :{
   do{
    ++x;
    if (a[x]==0&&b[x]==0) 
     break;
    b[x]+=a[x];
    if (b[x]>=10){
     b[x]-=10;
     ++b[x+1] ;
    }
   }while (true) ;
   for ( y=x-1 ; y>=0 ; --y ){
    cout << b[y] ;
   }
   cout << endl ;
   x=-1;
    }
   break;
  }
 }
 system ("pause") ;
}