算法设计与分析第三章课后答案吕国英主编Word文档格式.docx

上传人:b****5 文档编号:16206620 上传时间:2022-11-21 格式:DOCX 页数:16 大小:18.03KB
下载 相关 举报
算法设计与分析第三章课后答案吕国英主编Word文档格式.docx_第1页
第1页 / 共16页
算法设计与分析第三章课后答案吕国英主编Word文档格式.docx_第2页
第2页 / 共16页
算法设计与分析第三章课后答案吕国英主编Word文档格式.docx_第3页
第3页 / 共16页
算法设计与分析第三章课后答案吕国英主编Word文档格式.docx_第4页
第4页 / 共16页
算法设计与分析第三章课后答案吕国英主编Word文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

算法设计与分析第三章课后答案吕国英主编Word文档格式.docx

《算法设计与分析第三章课后答案吕国英主编Word文档格式.docx》由会员分享,可在线阅读,更多相关《算法设计与分析第三章课后答案吕国英主编Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

算法设计与分析第三章课后答案吕国英主编Word文档格式.docx

count=1;

=n/2;

for(j=i;

=n-i+1;

j++)//上侧

a[i][j]=count;

count++;

for(j=i+1;

=n-i;

j++)//右侧

a[j][n-i+1]=count;

for(j=n-i+1;

j>

=i+1;

j--)//下侧

a[n-i+1][j]=count;

j--)//左侧

a[j][i]=count;

if(n%2==1)

i=(n+1)/2;

a[i][i]=n*n;

for(i=1;

=n;

for(j=1;

printf("

%2d"

4、#include<

inti,j,n,a[100][100],count=1;

请输入方阵的阶n:

=i;

a[i-j+1][j]=count;

%4d"

5、#include<

count++;

a[i][i]=i;

10、狼找兔子问题:

一座山周围有n个洞,顺时针编号为0,1,2.,…,n-1。

一只狼从0号洞开始,顺时针方向计数,每当经过第m个洞时,就进洞找兔子。

输入m,n,问兔子有没有幸免的机会?

如果有,该藏哪里?

#include<

voidmain(){

inta[100],b[100],i,n,m,k=0,flag=0;

请输入洞的个数n:

请输入要经过洞的个数m:

m);

n;

i++){

a[i]=0;

b[i]=1;

;

i=(i+m)%n){

if(a[(i+m)%n]==0)

a[(i+m)%n]=1;

else

if(a[(i+m)%n]==1)

break;

if(a[i]==0)

k++;

if(a[i]==1)

flag++;

if(k>

0){

\n兔子有幸免的机会,位置为:

for(i=0;

i);

if(flag==n)

兔子没有幸免的机会!

}

12、有52张牌,使它们全部正面朝上,第一轮是从第2张开始,凡是2的倍数位置上的牌翻成正面朝下;

第二轮从第3张牌开始,凡是3的倍数位置上的牌,正面朝上的翻成正面朝下,正面朝下的翻成正面朝上;

第三轮从第4张牌开始,凡是4的倍数位置上的牌按上面相同规则翻转,以此类推,知道翻的牌超过104张为止。

统计最后有几张牌正面朝上,以及它们的位置号。

#include<

inta[100],i,sum,k,n=0;

100;

a[i]=1;

sum=0;

for(i=2;

53;

k=1;

while(i*k<

53&

&

sum<

=104){

a[i*k]=-a[i*k];

k=k+1;

++sum;

}

正面朝上的牌的位置为\n"

if(a[i]==1){

n++;

总共%d张牌\n"

n);

13、A,B,C,D,E5人为某次竞赛的前五名,他们在公布名次前猜名次。

A说:

B得第三名,C得第五名。

B说:

D得第二名,E得第四名。

C说:

B得第一名,E得第四名。

D说:

C得第一名,B得第二名。

D得第二名,A得第三名。

结果每个人都猜对了一半,实际名次是什么呢?

inta,b,c,d,e;

for(a=1;

a<

a++)

for(b=1;

b<

b++)

if(a!

=b)

for(c=1;

c<

c++)

if(c!

=a&

c!

for(d=1;

d<

d++){

if(d!

d!

=b&

=c)

e=15-a-b-c-d;

if(e!

e!

=c&

=d)

if((b==3)+(c==5)==1&

(d==2)+(e==4)==1&

(b==1)+(e==4)==1&

(c==1)+(b==2)==1&

(d==2)+(a==3)==1)

{

printf("

五人的名次分别为:

A\tB\tC\tD\tE\n"

%d\t%d\t%d\t%d\t%d\n"

a,b,c,d,e);

}

}

14、#include<

inti,w1,w2,w3,sql;

for(i=10;

32;

sql=i*i;

w1=sql/100;

w2=sql%100/10;

w3=sql%100%10;

if(w1==w2||w1==w3||w2==w3)

%d*%d=%d\n"

i,i,sql);

15、#include<

intA,B,C;

for(A=1;

A<

=3;

A++)

for(B=1;

B<

B++)

if(B!

=A)

C=6-A-B;

if(C!

=A&

C!

=B)

if(A!

=1&

=3)

->

%d\nB<

%d\nC<

%d\n"

A,B,C);

1->

X2->

Y3->

Z\n"

16、#include<

intnumber;

请输入一个整数\nnumber="

number);

if(number%4==0)

%d能被4整除\n"

number);

if(number%7==0)

%d能被7整除\n"

if(number%9==0)

%d能被9整除\n"

else

不能被4,7,9任一个整除\n"

17、#include<

inta,b,c,d;

Pleasethinkofanumberbetween1and100\n"

yournumberdividedby3hasaremainderof\n"

PleaseInputa="

a);

yournumberdividedby4hasaremainderof\n"

PleaseInputb="

b);

yournumberdividedby7hasaremainderof\n"

PleaseInputc="

c);

letmethinkamoment...\n"

d=28*a+21*b+36*c;

while(d>

84)

d=d-84;

你的数字是%d\n"

d);

18、#include<

inta,b,c,d,e,f,g,h,i,sum1,sum2;

=9;

d++)

for(e=1;

e<

e++)

if(e!

for(f=1;

f<

f++)

if(f!

f!

=d&

=e)

for(g=1;

g<

g++)

if(g!

g!

=e&

=f)

for(h=1;

h<

h++)

if(h!

h!

=f&

=g)

for(i=1;

if(i!

i!

=g&

=h)

{

sum1=a*10000+b*1000+c*100+d*10+e;

sum2=f*1000+g*100+h*10+i;

if(sum1==2*sum2)

printf("

五位数为:

%d四位数为:

%d\n"

sum1,sum2);

}

19、#include<

string.h>

charstr[100];

intsum=0,i,n=0;

请输入十六进制数:

gets(str);

n=strlen(str);

for(i=0;

if(str[i]=='

A'

|str[i]=='

B'

|

str[i]=='

C'

D'

E'

F'

str[i]=str[i]-55;

a'

b'

c'

d'

e'

f'

str[i]=str[i]-87;

1'

2'

3'

4'

5'

6'

7'

8'

9'

0'

str[i]=str[i]-48;

n-1;

sum=(sum+str[i])*16;

sum=sum+str[i];

十进制数为:

sum);

20、#include<

inta,b,c,d,e,f,g,h,i;

壮观的for(d=1;

if((a*10+b)*(c*100+d*10+e)==(f*1000+g*100+h*10+i))

a=%db=%dc=%dd=%de=%df=%dg=%dh=%di=%d\n"

a,b,c,d,e,f,g,h,i);

21、#include<

math.h>

if(sqrt(a*100000+b*10000+c*1000+d*100+e*10+f)==(g*100+h*10+i))

a*100000+b*10000+c*1000+d*100+e*10+f);

23、#include<

intnumber,w1,w2,w3,w4,w5;

请输入一个五位以内的正整数:

if(number/10==0)

它是一个一位数!

正序逆序相同!

else

if(number/100==0)

它是一个两位数!

正序为:

%d%d\n"

number/10,number%10);

逆序为:

number%10,number/10);

if(number/1000==0)

{

它是一个三位数!

w1=number/100;

w2=number%100/10;

w3=number%10;

%d%d%d\n"

w1,w2,w3);

w3,w2,w1);

else

if(number/10000==0)

{

printf("

它是一个四位数!

w1=number/1000;

w2=number%1000/100;

w3=number%100/10;

w4=number%100%10;

%d%d%d%d\n"

w1,w2,w3,w4);

w4,w3,w2,w1);

}

else

if(number/100000==0)

{

printf("

它是一个五位数!

w1=number/10000;

w2=number%10000/1000;

w3=number%1000/100;

w4=number%1000%100/10;

w5=number%1000%100%10;

%d%d%d%d%d\n"

w1,w2,w3,w4,w5);

w5,w4,w3,w2,w1);

}

else

error!

27、#include<

intmonth;

请输入月份month="

month);

switch(month)

case1:

printf("

January\n"

break;

case2:

February\n"

case3:

March\n"

case4:

April\n"

case5:

May\n"

case6:

June\n"

case7:

July\n"

case8:

August\n"

case9:

September\n"

case10:

October\n"

case11:

Novem

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1