C++课程设计南通大学计算机科学与技术学院.docx
- 文档编号:5062403
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:22
- 大小:21.83KB
C++课程设计南通大学计算机科学与技术学院.docx
《C++课程设计南通大学计算机科学与技术学院.docx》由会员分享,可在线阅读,更多相关《C++课程设计南通大学计算机科学与技术学院.docx(22页珍藏版)》请在冰豆网上搜索。
C++课程设计南通大学计算机科学与技术学院
南通大学计算机科学与技术学院
C++课程设计
姓名:
XX
学号:
xxxxxxxxxx
时间:
2013年7月7日
101.(3分)输入一个正整数,以及另外5个正整数,输出后5个整数中那些小于a的整数的和。
#include
usingnamespacestd;
intmain(void)
{inta,x[5],s=0;
cout<<"请输入a和其它5个整数"< cin>>a; for(inti=0;i<5;i++)//5个整数依次与a比较。 若小于啊a,则加 { cin>>x[i]; if(x[i] } cout<<"和为: "< return0; } 102.(3分)给定2到15个不同的正整数,统计这些数里面有多少个数对满足: 数对中一个数是另一个数的两倍。 比如给定1432971822,得到的答案是3,因为2是1的两倍,4是2的两倍,18是9的两倍。 #include usingnamespacestd; #definen8 intmain(void) {inta[n],t=0; cout<<"请输入数据: "< for(inti=0;i cin>>a[i]; for(i=0;i { for(intj=0;j { if(a[i]==2*a[j]) {cout< } } cout<<"答案是: "< return0; } 103.(3分)找出所有这样的3位数,390625——625*625 #include usingnamespacestd; intmain(void) { for(intx=100;x<=999;x++) { if(x*x%1000==x) cout< "< } return0; } 104.(3分)找出既是素数又是回文数(从右向左读和从左向右读相同)的3位数。 #include #include usingnamespacestd; boolsushu(intx)//判断是否为素数 { for(inti=2;i<=(int)sqrt(x);i++) if(x%i==0)return0; return1; } intmain(void) { intx,a,b,c; for(x=100;x<=999;x++) { a=x%10;//求个位数 b=x/10%10;//求十位数 c=x/100;//求百位数 if((sushu(x))! =0&&a==c)cout< } cout< return0; } 106.(3分)求这样一个3位数,abc=a! +b! +c! 。 #include usingnamespacestd; intf(intn) {ints=1; for(inti=2;i<=n;i++) s*=i; returns; } intmain(void) {intx,a,b,c; for(x=100;x<=999;x++) { a=x%10; b=x/10%10; c=x/100; if(x==f(a)+f(b)+f(c)) cout< } cout< return0; } 107.(3分)求5位数既能被5整除,又能被3整除。 已知54-7- #include usingnamespacestd; intmain(void) { inta,b,t=0; for(a=0;a<=9;a++) { for(b=0;b<=9;b++) { if((5*10000+4*1000+a*100+7*10+b)%5==0&&(5*10000+4*1000+a*100+7*10+b)%3==0) {cout<<"54"< } } cout<<"这样的数共有"< return0; } 108.(4分)鸡兔同笼,共有头98只,脚386只,编程求鸡、兔各多少只? #include usingnamespacestd; intmain(void) { intx,y;//鸡有x只,兔有y只 for(x=1;x<=98;x++)//循环,设置循环条件,鸡或兔都应小于等于头的数 for(y=1;y<=98;y++) { if((x+y==98)&&(2*x+4*y==386))//满足条件头有98,脚有386. cout<<"鸡有"< "< } return0; } 109.(4分)百鸡问题。 设公鸡5元一只,母鸡3元一只,小鸡一元3只,请问花一百元买100只鸡,且需包含公鸡、母鸡和小鸡,有哪几种方案。 #include usingnamespacestd; intmain(void) { intx,y,z;//公鸡x只,共5x元,母鸡y只,共3y元,小鸡3z只,共z元。 for(x=1;x<=100/5;x++)//限制x,y,z的条件是鸡的最大只数。 {for(y=1;y<=(int)100/3;y++) { for(z=1;z<=100;z++) if((5*x+3*y+z==100)&&(x+y+3*z==100))//限制条件百元白鸡 cout<<"公鸡"< "< } } return0; } 110.(4分)三色球问题。 若一个口袋中放有12只球,其中有红球3只,白球3只,黑球6只,试问从中任取8只球,共有多少种不同色取法。 #include usingnamespacestd; intmain(void) { intx,y,z,t=0;//取红球x个,白球y个,黑球z个。 t用来统计有多少种取法 for(x=0;x<=3;x++)//因为各种颜色的球的个数有限制,所以限制条件 {for(y=0;y<=3;y++) { for(z=0;z<=6;z++) if(x+y+z==8)//满足要求的条件 {cout<<"取红球"< "< } } cout<<"共有"< return0; } 111.(4分)用1元5角人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案? 每种方案各换多少枚? 分析: 将单位换位,则共有150分,再确定x,y,z的限制条件. #include usingnamespacestd; intmain(void) { intx,y,z,t=0;//x指5分的枚数,y指2分的枚数,z指1分的枚数。 t统计方案数 for(x=1;x<150/5;x++) {for(y=1;y<150/2;y++) { for(z=1;z<150;z++) if((x+y+z==100)&&(5*x+2*y+z==150)) {cout<<"5分的"< } } cout<<"共有"< return0; } 112.(4分)一辆卡车违反交通规则,撞人逃跑。 现场三人目击事件,但都没记住车号,只记下车号的一些特征。 甲说: 拍照的前两位数字是相同的;乙说: 拍照的后两位数字是想同的;丙是位数学家,他说: 四位的车号刚好是一个整数分平方。 请根据以上线索求出车号。 #include usingnamespacestd; intmain(void) { inta,b;//a代表车牌号的第一、第二位,b代表第三、第四位。 for(a=0;a<=9;a++) {for(b=0;b<=9;b++) for(inti=1;i<100;i++)//因为100的平方是5位数,所以四位数的开根号一定小于100. { if(a*1000+a*100+b*10+b==i*i&&a! =b) cout<<"车牌号为: "< } } return0; } 113.(4分)编程输出满足下列算式的各字母所代表的数字。 PEAR-ARA=PEA。 #include usingnamespacestd; intmain(void) { intP,E,A,R; for(P=1;P<=9;P++)//注意,因为P、E有出现在数字的首位,所以不能为0 { for(A=1;A<=9;A++) { for(R=0;R<=9;R++)//R、E不在首位,可以从0开始循环 { for(E=0;E<=9;E++) { if((P*1000+E*100+A*10+R)-(A*100+R*10+A)==(P*100+E*10+A)) cout<<"P: "< "< "< "< } } } } return0; } 114.(4分)一个自然数的七进制是一个三位数,而这个自然数的九进制也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。 #include usingnamespacestd; intmain(void) { inta,b,c;//设3位数为abc; for(a=1;a<=9;a++) { for(b=0;b<=9;b++)//a,c出现在首位,所以不能为1,b可以为1 { for(c=1;c<=9;c++) { if((a*7*7+b*7+c)==(c*9*9+b*9+a))//将自然数分别用七进制和九进制表示 cout< } } } return0; } 116.(4分)在数字圆圈中,相隔一个数字的两个数,看作是一对数。 试编程找出乘积最小的一对。 #include usingnamespacestd; intmain(void) { inta[20]={1,6,16,10,2,18,7,13,3,15,11,8,4,20,19,14,5,9,12,17},max=a[0]*a[2],min=a[0]*a[2],j1,k1,j2,k2; for(inti=0;i<18;i++) { if(max<=a[i]*a[i+2]){max=a[i]*a[i+2];j1=i;k1=i+2;}//循环。 将相隔一个数的两个数乘积大小比较 if(min>=a[i]*a[i+2]){min=a[i]*a[i+2];j2=i;k2=i+2;} } if(max<=a[18]*a[0]){max=a[18]*a[0];j1=18;k1=0;}//由于排列为环形,所以最后两个数应该单独拿出来比较 if(max<=a[19]*a[1]){max=a[19]*a[1];j1=19;k1=1;} if(min>=a[18]*a[0]){min=a[18]*a[0];j2=18;k2=0;} if(min>=a[19]*a[1]){min=a[19]*a[1];j2=19;k2=1;} cout<<"最大的一对:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 南通 大学计算机 科学 技术学院
![提示](https://static.bdocx.com/images/bang_tan.gif)