多题目

菲波拉契数列为1,1,2,3,5,8,13,21,…,其元素产生的规则是前两个数为1,从第三个数开始每个数等于它前面两个数之和。已知任意一个正整数可以表示为若干个互不相同的菲波拉契数之和。例如:36=21+13+2。

下面的程序是由键盘输入一个正整数n,输出组成n的互不相同的菲波拉契数。算法说明:(1)寻找小于等于n的最大菲波拉契数a,并以a作为组成n的一个数(2)若n≠a,则以n-a作为n的新值,重复步骤(1)。若a=n,则结束。

#include<iostream>tinclude<cstdio>using namespace std;

int n;

bool first;

int find (int n)

int a,b,c;

a=l;b=l;

do

C=a+b;

(_①);

}while(b<n);

if(2)

return bi

else

        (  3_)

)

void p(int n)

int a;

a=find(n);

if(first)

printf("%4d",a);

first false

}else

if(a<n)

int main()

cin>>n;

first=true;

printf("g5d=",n);

P(n);

cout<<endl;

return 0;


第1题 单选

1处应填

A.

a=c:b=a

B.

a=b;b=c

C.

a==b;b==c

D.

a==c;b==a

第2题 单选

2处应填

A.

b==n

B.

b<n

C.

a==n

D.

a<n

第3题 单选

3处应填

A.

return c

B.

return b

C.

return a+b

D.

 return a

第4题 单选

4处应填

A.

 printf("%4d" ,a)

B.

 printf( " +% 4d" ,a)

C.

printf( " % 4d" ,b)

D.

printf( " +%4d" ,b)

第5题 单选

5处应填

A.

p(a)

B.

p(b)

C.

p(n-a)

D.

p(n-b)

发表评论

登录 后再回复