ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:22.42KB ,
资源ID:1677559      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1677559.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ACM软件大赛之编程大赛题目附部分答案.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ACM软件大赛之编程大赛题目附部分答案.docx

1、ACM软件大赛之编程大赛题目附部分答案ACM软件大赛之编程大赛比赛考前须知:比赛时间为3小时180分钟;比赛分两个阶段:第一阶段限时30分钟,完成公示的3题,第二阶段限时150分钟事先完成第一阶段题目的小组可提前进入第二阶段;比赛第一阶段的3道题目将在前期宣传中告知参赛选手,比赛第二阶段的题目将由赛事主席当场公布竞赛题目;前两阶段题目分为三个分值5分、10分、15分,第一阶段3道公示题都为5分;第二阶段总共15道题,根据不同的难度分值不同,分别为5道5分题,5道10分题,5道15分题;第一阶段参赛队员不可参考任何相关资料;第二阶段参赛队员可以携带诸如书,手册,程序清单等参考资料。比赛过程中队员

2、不得携带任何电子媒质的资料;参赛者可以选择自己擅长的语言C,C+,JAVA等等进展编写考虑到大一和大二学生的知识掌握程度,大一参加选手一开场就会有10分的分数,最后总分是由所做题目及初始的10分相加得到。每组队员根据安排使用电脑,小组人数为两人的使用一台电脑,超过两人的使用两台电脑,每台的电脑配置完全一样;各小组每做完一题或几题,必须交予评委教师运行,评委教师当场给分;如在比赛中发现作弊等行为,将取消比赛资格。第一阶段公示题目:题目一:5分打印以以下图形,纵遵从字母顺序,行字符数遵从斐波那契数列ABCCDDDEEEEEFFFFFFFFGGGGGGGGGGGGG#includeint f(int

3、 x) int a = 1 , b = 0; int max_ = x; int sum = 0; for(int i = 0; i max_ ; i+) sum = a + b; a = b; b = sum; return sum;void loop_print(int num,char chr) for(int i = 0; i num ;i+) std:coutchr; std:coutn;int main() int line_max = 7; char chr = A; for(int line = 0; line line_max; line+) loop_print(f(lin

4、e+1),chr); chr+; return 0;题目二:5分有个电子钟,12点显示为12:00即12小时制,那么请问一天24时间,出现连续3个一样数字的钟点有几个?#includeusing namespace std;bool check(int time) int h=time/100; int m=time-100*h; return h=12&m0?true:false;/12小时制int main() int time=0; int j(0);/总计数器 while(time1270)/max 12:59 int t=time; int n4; for(int i=0;i4;i+

5、) ni=t%10; t /= 10; if(n1=n2&(n0=n1|n3=n1)&check(time) /coutn3n2:n1n0n;/test j+; time+; couttotal: j*2 endl;题目三:5分10进制的四位数中有几个符合如下特征:将其分别表示为16进制、10进制、12进制,在每种状态下,分别将各个位上的数相加,能得到3个相等10进制数。例如299210进制:2992 2+9+9+2 = 2212进制:1894 1+8+9+4 = 2216进制:BB0 11+11+0 = 222992-2999#include#includeusing namespace s

6、td;int convert(int n,int c) float high_p=0; int sum=0; int a4=0,0,0,0; for(int i=0;i+) float testN = pow(c,(float) i); if(n=testN)high_p=i; else break; for(int i=0;high_p!=-1;i+) ai=n/pow(c,high_p); n-=ai*pow(c,high_p); high_p-; for(int i=0;i4;i+)sum+=ai; return sum;int main() int j=0; for(int i=100

7、0;i=9999;i+) if(convert(i,16)=convert(i,10)&(convert(i,10)=convert(i,12) coutiendl; j+; coutj;return 0;第二阶段题目:题目一:5分不引入临时变量写出swap(a,b)功能void swap(int &a, int &b) a += b; b = a-b; a -= b;题目二:5分she分别代表3个数字,:(he)2=sheshe=?#includeint main() for(int he=15;he=96;he+) for(int s=1;s=9;s+) if(he*he=100*s+he

8、) std:couthe*heendl; return 0;题目三:5分有4条狗A、B、C、D,他们分别在一条100m的公路上步行,速率均为5m/s,A初始在30m处,B初始在65m处,C初始在75m处,D初始在95m处,初始左右方向是随意的,任意两狗相遇那么各自掉头掉头时间不计,速率保持5m/s。请问,4条狗最终都离开公路的最大时间是几秒?#includeint main() std:cout95/5; return 0;题目四:5分Big Bang 中的高级石头剪刀布问题Scissors - Paper Paper - RockRock - ScissorsRock - LizardLiz

9、ard - SpockSpock - ScissorsScissors - LizardLizard - PaperPaper - SpockSpock - Rock规那么是左边的手势赢右边的手势,现有玩家P1、P2,输入各自选择的手势,得出胜负。#include#includeusing namespace std;int main() int p2, p1; cout 1.Paper endl 2.Rock endl 3.Lizard endl 4.Spock endl 5.Scissors p1 p2; float n = p1 - p2; if (n * pow(-1, fabs(n)

10、 0)/此算法由yaozizi提供 cout p2 win; else if (n = 0) cout duce; else cout p1 win; return 0;题目五:5分游戏规那么:21根火柴,每次取1-4根,谁取走最后一根判输。现在人和计算机博弈,设计一个程序保证计算机必胜,要求每回合人与计算机各输入或返回一个代表取走火柴根数的数,直到游戏完毕。#includeusing namespace std;int main() int n=21; int p,c; while(n!=0) cinp; while(p4|p=0|n-p0) couterr, input againp; i

11、f(n!=0) if(n!=1)cout5-pendl; else cout=5)n-=5; 题目六:10分以下式子:2+3+4=91+2+3+4=10显然右边的数都能表示为nn2个连续自然数之和1开场,暂称之为囧数但似乎23、32等数都不能写成几个数之和的形式,所以它们不是囧数这里有个可行的判断方法为:上限为N,那么测试1+2+31+2+3+41+2+3+4+N2+3+42+3+4+N(N-2)+(N-1)+N是否等于N这是一种可行但非常暴力的穷举实际上囧数还是有一些规律可循的,请设计一个优于之前提到的算法要求输入一个数,并判断它是否为囧数/*1.如果一个数能被奇数=3整除,那么必能写成X=

12、平均数*中间数的形式,所以是囧数2.如果一个数是合数,如果其中有奇数因子,那么回到1,为囧数;如果它是2的乘方,那么不是囧数 证明:它无法写成奇数个相加,因为除不尽奇数;也不能写成偶数个相加,中间数有两个,和必为奇数,这个奇数必然是欲判断数的一个因子3.如果一个数是素数,那么必须是6、10、14、18个数相加得来,这样才能得到奇数,根据高斯求和公式,这样的和必有奇数因子综上:只有2的乘方、素数、小于6的自然数,不是囧数*/#includeusing namespace std;bool check(long tar) bool flag = false; if(tar6)flag = false; else if(tar%2=0)/偶数是否是2的阶乘 while(tar%2=0)tar/=2; tar=1?flag=false:flag=true; else /奇数是否是素数 double end = tar; for(int i=3;itar; bool flag = check(tar); coutflag; return 0;

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

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