ACM软件大赛之编程大赛题目(附部分答案).pdf
文本预览下载声明
ACM软件大赛之编程大赛
比赛注意事项:
● 比赛时间为3小时(180分钟);比赛分两个阶段:第一阶段限时30分钟,完成公示的
3题,第二阶段限时150分钟(事先完成第一阶段题目的小组可提前进入第二阶段);
● 比赛第一阶段的3道题目将在前期宣传中告知参赛选手,比赛第二阶段的题目将由赛事
主席当场公布竞赛题目;
●前两阶段题目分为三个分值(5分、10分、15分),第一阶段3道公示题都为5分;第
二阶段总共15道题,根据不同的难度分值不同,分别为5道5分题,5道10分题,5
道15分题;第一阶段参赛队员不可参考任何相关资料:第二阶段参赛队员可以携带诸
如书,手册,程序清单等参考资料。比赛过程中队员不得携带任何电子媒质的资料;参
赛者可以选择自己擅长的语言(C,C++,JAVA等等)进行编写
● 考虑到大一和大二学生的知识掌握程度,大一参加选手一开始就会有10分的分数,最
后总分是由所做题目及初始的10分相加得到。
● 每组队员根据安排使用电脑,小组人数为两人的使用一台电脑,超过两人的使用两台电
脑,每台的电脑配置完全相同;
● 各小组每做完一题或几题,必须交予评委老师运行,评委老师当场给分;
● 如在比赛中发现作弊等行为,将取消比赛资格。
第一阶段公示题目:
题目一:(5分)
打印以下图形,纵遵从字母顺序,行字符数遵从斐波那契数列
A
B
CC
DDD
EEEEE
FFFFFFFF
GGGGGGGGGGGGG
#includeiostream
int f(int x){
inta=1,b=0;
int max_=x;
int sum=0
for(inti=0;imax_;i++){
sum =a+b
a=b;
b= sum;
}
return sum;
}
void loop_print(int num,char chr){
for(inti=0;inum;i++)
std::coutchr;
std::cout\n;
}
int main(){
int line_max=7;
char chr=A;
for(int line =0; line line_max; line++){
loop_print(f(line+1),chr);
chr++;
}
return 0;
}
题目二:(5分)
有个电子钟,12点显示为12:00(即12小时制),那么请问一天24时间内,出现连续3个
相同数字的钟点有几个?
#includeiostream
using namespace std;
bool check(int time){
int h=time/100;
int m=time-100*h;
return h=12m=59h0?true:false;//12小时制
}
int main(){
int time=0;
int j(0);//总计数器
while(time1270){//max 12:59
int t=time;
int n[4];
for(int i=0;i4;i++){
n[i]=t;
t/=10;
}
//coutn[3]n[2]:n[1]n[0]\n;//test
j++;
)
time++;
}
couttotal:j*2
endl;
}
题目三:(5分)
10进制的四位数中有几个符合如下特征:将其分别表示为16进制、10进制、12进制,在
每种状态下,分别将各个位上的数相加,能得到3个相等10进制数。
例如2992
10进制:29922+9+9+2=22
12进制:18941+8+9+4=22
16进制:BBO 11+11+0=22
2992-2999
Hincludeiostream
#includecmath
using namespace std;
int convert(int n,int c){
float high p=0
显示全部