2009绍兴市小学信息学奥赛复赛题.docx
PAGE
PAGE10
绍兴市第七届少儿信息学竞赛复赛试题
第一题 13号星期几
(riqi.pas)
问题描述
请编程统计:从1900年1月1日(当天是星期一)开始经过的n年当中,每个月的13号这一天是星期一、星期二、星期三、……、星期日的次数分别是多少?
输入文件riqi.in:
共一行,一个整数n(1≤n≤400)。输出文件riqi.out:
仅一行,有7个整数(依次是星期一、星期二、星期三、……、星期日的次数),各数间以空格相隔。
样例
输入:
1
输出:
1 3 1 2 2 2 1
第二题高兴的小明
(fhp.pas)
问题描述
今天,小明很高兴,因为国庆放假了,又恰逢是自己的生日。为了庆祝节日,小明与邻居的小伙伴共n个人相约一起放花炮。他们先同时放响了第一个花炮,随后n个人分别以A1、A2、A3、??An秒的间隔继续放花炮,到最后每人都放了b个花炮(包括第一个)。问:总共可听到多少声花炮响?
输入文件fhp.in:
共三行,第一行仅一个整数n(n=10),第二行是A1、A2、A3、??An共n个整数(每个数=100,各数间以空格相隔),第三行只有一个整数b(b=100)。
输出文件fhp.out:
仅一行,一个整数(听到的花炮响声数)。样例
输入:
3
123
4
输出:
7
第三题摘彩球
(zcq.pas)
问题描述
今年是国庆60周年,学校少先队大队部举行了庆祝活动,其中有一项活动是摘彩球。大队辅导员在学校礼堂里高低不一地挂了N个彩球,请M位少先队员到礼堂里摘彩球。辅导员说:你们每人最多可以摘两个彩球,而且只许站着伸手摘,不允许借助其它工具,摘下的彩球归大家共有。由于各少先队员的身高参差不齐,怎样才能使他们摘的彩球总数最多呢?请你计算少先队员们最多能摘到多少个彩球?
输入文件zcq.in:共三行。
第一行有二个整数N和
M(N=100,M=20),两数间用空格隔开。
第二行有N个整数(各数间以空格相隔),分别表示每个彩球的高度。
第三行有M个整数(各数间以空格相隔),分别表示每个少先队员伸手能达到的高度。
输出文件zcq.out:仅一行,有一个整数,表示最多能摘到的彩球数。
样例输入:10 4
1101001509010013516088130140
12010011080
输出:
5
第四题莱布尼茨三角形
(lbnc.pas)
问题描述
世界上著名的莱布尼茨三角形如图所示,请编程输出图中排在第n行从左边数第m个位置上的数。
输入文件lbnc.in:
共一行,有二个整数N和M(N=15),两数间用空格隔开。
输出文件lbnc.out:
共一行,有二个整数,两数间用“/”隔开,表示所求的分数。
样例
输入:7 3输出:1/105程序:riqi.pas:
var
a:array[1..7]oflongint;i,j,h,k,n,l:longint;
beginassign(input,riqi.in);assign(output,riqi.out);reset(input);rewrite(output);read(n);
h:=1900;n:=1900+n;
repeat
fori:=1to12dobegincaseiof1,3,5,7,8,10,12:k:=31;
4,6,9,11:k:=30;
2:if (h mod 400=0) or (h mod1000)and(hmod4=0)thenk:=29
elsek:=28;
end;
forj:=1tokdobegininc(l);
ifl=8thenl:=1;
ifj=13theninc(a[l]);end;
end;inc(h);untilh=n;
fori:=1to6dowrite(a[i],);
write(a[7]);close(input);close(output);end.
fhp.pas:
var
flag:array[1..10000]ofboolean;a,b:array[1..10]oflongint;i,j,t,n,m:longint;
begin
assign(input,fhp.in);assign(output,fhp.out);reset(input);rewrite(output);readln(n);
fori:=1tondoread(a[i]);read(m);
dec(m);
fori:=1to