算法设计与分析-第2版-吕国英-第三章课后习题答案-(1)

上传人:沈*** 文档编号:188906952 上传时间:2023-02-20 格式:PDF 页数:9 大小:184.42KB
返回 下载 相关 举报
算法设计与分析-第2版-吕国英-第三章课后习题答案-(1)_第1页
第1页 / 共9页
算法设计与分析-第2版-吕国英-第三章课后习题答案-(1)_第2页
第2页 / 共9页
算法设计与分析-第2版-吕国英-第三章课后习题答案-(1)_第3页
第3页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
word 专业资料-可复制编辑-欢迎下载 3.1/计算 2+22+222+.+2222 void main()int i,n,sum=0;print(请输入最后一个因子的位数n);scanf(%d,&n);for(i=1;i=n;i+)sum=sum+(int)pow(10,i)-1)/9*2;print(2+22+222+.+2222=%dn,sum);3.2显示5,7,4,8,9,1的方阵方式 main()int i,j,t,ori6=5,7,4,8,9,1;for(i=0;i6;i+)for(j=0;j6;j+)t=(j-i)0?j-i+6:j-i;printf(%d,orit);printf(n);3.3 main()int n;int*up(int*array);scanf(%d,&n);int arr11=n*n;for(j=1;jn;j+)arr=up(*arr,j);int *up(int*array,n)int upN=n+1;intupNupN tem;tem11=array11-pow(n+1,2);for(i=1;i=n;i+)tem1i=tem1i-1+1;for(i=1;i=n;i+)temni=temni-1+1;for(i=1;i=n;i+)word 专业资料-可复制编辑-欢迎下载 temnn-i=temnn+1-i+1;for(i=1;in;i+)tem1n-i=tem1n-i+1+1 return*tem;3.4 main()int i,j,t=0,next=1,n;printf(请输入 nn);scanf(%d,&n);printf(显示效果如下n);for(i=1;i=n;i+)for(j=1;j=n-i+1;j+)if(j=1)t=next;else t=t+i+j-1;if(j=2)next=t-1;printf(%d,t);printf(n);/思想:每一行的第二个数为 next,下一行的第一个数为 next-1 3.5 main()int n,i,j,k;int arr100100=0;/动态定义数组太难,所以在系统直接定义一个 100*100 的方阵,可以处理部分小问题 for(i=0;i100;i+)for(j=0;j100;j+)arrij=0;printf(请输入 nn);scanf(%d,&n);/*if(n%2=0)for(k=0;kn/2;k+)for(i=k;in-k;i+)for(j=k;jn-k;j+)word 专业资料-可复制编辑-欢迎下载 arrij=k+1;else for(k=0;k(n+1)/2;k+)for(i=k;in-k;i+)for(j=k;jn-k;j+)arrij=k+1;*/可将第一个 for 循环中的判断条件统一改为 k(n+1)/2 for(k=0;k(n+1)/2;k+)for(i=k;in-k;i+)for(j=k;jn-k;j+)arrij=k+1;printf(显示效果如下:n)for(i=0;in;i+)for(j=0;jn;j+)printf(%2d,arrij);printf(n);3.7 main()int ack(int m,int n);int m,n,score;printf(请输入 ackermann 函数的 m,n:n);printf(m:);scanf(%d,&m);printf(n:);scanf(%d,&n);score=ack(m,n);printf(ack(%d,%d)=%dn,m,n,score);int ack(int m,int n)if(m=0)return n+1;else if(n=0)return ack(m-1,1);else return ack(m-1,ack(m,n-1);3.8 word 专业资料-可复制编辑-欢迎下载 main()char str40;int i,l,t=1;printf(Please input a string!n);scanf(%s,str);l=strlen(str);for(i=0;il/2;i+)if(stri!=strl-i-1)t=0;if(t)printf(The string is Huiwen!n);else printf(The string is not Huiwen!n);3.11 main()int i,n,sum=0;/sum 为零的个数 int zero(int pro);printf(此程序用于计算 1*2*3*n 所得的数末尾有多少个零。n);printf(请输入 n(1000n10000):);scanf(%d,&n);for(i=1;i5)sum+;printf(1*2*3*n 所得的数末尾有%d 个零。n,sum);int zero(int pro)if(pro%1000=0)return 3;else if(pro%100=0)return 2;else if(pro%10=0)return 1;else return 0;3.15 word 专业资料-可复制编辑-欢迎下载 main()int c,a,b;for(c=88;c=90;c+)if(c!=88)&(c!=90)for(a=88;a=90;a+)if(a!=88)&(a!=c)for(b=88;b=90;b+)if(b!=a)&(b!=c)printf(A%cnB%cnC%c,a,b,c);3.16 main()int num3=4,7,9,flag3=0;int n,i,sum;printf(此程序用于判断该数能否被 4,7,9 整除,并输出相关信息。n);printf(请输入 n:);scanf(%d,&n);if(n%4!=0&n%7!=0&n%9!=0)printf(%d 不能被 4,7,9 任一个整除。n,n);else if(n%4=0)flag0=1;if(n%7=0)flag1=1;if(n%9=0)flag2=1;sum=flag0+flag1+flag2;if(sum=1)printf(%d 能被一个数整除,它是%dn,n,flag0?num0:flag1?num1:num2);else if(sum=3)printf(%d 能同时被 4,7,9 整除。n);else printf(%d 能被两个数整除,它是%d,%dn,n,flag0?num0:num1,flag2?num2:num1);3.18 int dif(int i,int j,int k,int l)if(i=j|i=k|i=l|j=k|j=l|k=l)word 专业资料-可复制编辑-欢迎下载 return 0;else return 1;int dis(int m,int i,int j,int k,int l)if(m=i|m=j|m=k|m=l)return 0;else return 1;void main()int i1,i2,i3,i4,j2,j3,j4,j5,num=0;int a,b;/a 为四位数,首位应该最小为 5;b 为五位数,首位应为 1,末尾为偶数 for(i1=5;i110;i1+)for(i2=0;i210;i2+)for(i3=0;i310;i3+)for(i4=0;i410;i4+)if(dif(i1,i2,i3,i4)for(j2=0;j210;j2+)/首位 j1 为 1 for(j3=0;j310;j3+)for(j4=0;j410;j4+)for(j5=0;j510;j5+=2)/末尾 j5 为偶数 if(dis(1,i1,i2,i3,i4)&dis(j2,i1,i2,i3,i4)&dis(j3,i1,i2,i3,i4)&dis(j4,i1,i2,i3,i4)&dis(j5,i1,i2,i3,i4)&dis(1,j2,j3,j4,j5)if(dif(j2,j3,j4,j5)a=i1*1000+i2*100+i3*10+i4;b=10000+j2*1000+j3*100+j4*10+j5;if(b%a=0)num+=1;printf(第%2d 个:%d=%d*2n,num,b,a);3.19 main()char*a,*b;int n,num,i,sum,dec;printf(请输入您要输入的十六进制数的位数:n=);scanf(%d,&n);a=calloc(n,sizeof(char);word 专业资料-可复制编辑-欢迎下载 for(i=0;in;i+)ai=0;/*num=(int)(n*log10(16)+1;b=calloc(num,sizeof(int);for(i=0;i=97&a0=65&a0=70?a0-55:a0-48);printf(%dn,sum);for(i=1;i=97&ai=65&ai=70?ai-55:ai-48);printf(dec=%dn,dec);sum=sum*16+dec;printf(sum=%dn,sum);printf(%d,sum);3.23 main()int i,j,l;char array5;char number10=0,1,2,3,4,5,6,7,8,9;char num10=0,1,2,3,4,5,6,7,8,9;printf(请输入一个 5 位以内的正整数。n);scanf(%s,array);l=strlen(array);printf(该数为%d 位数。n,l);for(i=0;i10;i+)for(j=0;j5;j+)if(numberi=arrayj)numi=n;/非数字即可 printf(其它数字为:);for(i=0;i=0;i-)if(numi!=n)printf(%c,numi);printf(n);word 专业资料-可复制编辑-欢迎下载 3.25 main()int i1,i2,i3,i4,i5,j1,j2,j3,j4,j5;int array4=1,3,5,7;int three64=0;int two16=0;int four256=0;int four2256=0;int five1024=0;for(j1=0;j14;j1+)for(j2=0;j24;j2+)for(j3=0;j34;j3+)threej1*16+j2*4+j3=arrayj1*100+arrayj2*10+arrayj3;for(j1=0;j14;j1+)for(j2=0;j24;j2+)twoj1*4+j2=arrayj1*10+arrayj2*1;for(j1=0;j14;j1+)for(j2=0;j24;j2+)for(j3=0;j34;j3+)for(j4=0;j44;j4+)fourj1*64+j2*16+j3*4+j4=arrayj1*1000+arrayj2*100+arrayj3*10+arrayj4;for(j1=0;j14;j1+)for(j2=0;j24;j2+)for(j3=0;j34;j3+)for(j4=0;j44;j4+)four2j1*64+j2*16+j3*4+j4=arrayj1*1000+arrayj2*100+arrayj3*10+arrayj4;for(j1=0;j14;j1+)for(j2=0;j24;j2+)for(j3=0;j34;j3+)for(j4=0;j44;j4+)for(j5=0;j54;j5+)fivej1*256+j2*64+j3*16+j4*4+j5=arrayj1*10000+arrayj2*1000+arrayj3*100+arrayj4*10+arrayj5;for(i1=0;i164;i1+)for(i2=0;i216;i2+)for(i5=0;i51024;i5+)if(threei1*twoi2=fivei5)/验证错误的测试输出 printf(验证错误的测试输出 n);printf(%d*%d=%d n,threei1,twoi2,fivei5);printf(%d*%d=%d n,threei1,twoi2%10,threei1*(twoi2%10);printf(%d*%d=%d n,threei1,twoi2/10,threei1*(twoi2/10);word 专业资料-可复制编辑-欢迎下载 /下面应该有输出才对 for(i3=0;i3256;i3+)if(threei1*(twoi2%10)=fouri3)for(i4=0;i4256;i4+)if(threei1*(twoi2/10)=four2i4)printf(%d*%d=%d n,threei1,twoi2,fivei5);printf(%d*%d=%d n,threei1,twoi2%10,fouri3);printf(%d*%d=%d n,threei1,twoi2/10,four2i4);printf(此处输出有答案!n);/多次验证,无答案
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!