发布时间 : 星期日 文章2018第十六届绍兴市少儿信息学竞赛初赛试题(c )更新完毕开始阅读d128f11ab8d528ea81c758f5f61fb7360a4c2b50
int s(int n, int t) {
if(n==0) return(1);
else if (t==0) return s(n-l, t+1);
else return s(n-l, t+l)+s(n, t-1); }
int main(){ cin>>n;
cout<
输出:
四、完善程序(根据问題要求和已有程序,在程序空格处填入适当的语句或符号,使程序完整。本题每3分,共30分) 1. 完全数 【问题描述】
在泽泽参加的“奇思妙想学数学”的思维拓展兴趣课中,老师抛出了一些有趣好玩的数 字游戏,取名为“完全数”,所谓完全数是真约数之和等于它本身的数。例如28的约数是 1, 2, 4,7, 14,并且1+2+4+7+14=28,所以28是完全数。这个游戏对数字特别感兴趣的泽泽来说是“小意思”,因为他认为“完全数”是最美的数字。泽泽不屑于判断单个数是否是完全数,他想找出一段连续数据里面的所有完全数,如求x?y (2<=x<=y<=10000)中的完全数。但是他又感觉每个完全数进行正向输出又没有反向输出好看,所以他想把找到的完 全数反向输出。当然如果这段数据里面没有完全数就应该输出no。 【输入格式】
一行:包括两个数,x y代表求x?y之间的完全数。 【输出格式】
输出可能有多行,每行一个反向输出的完全数。注:如果没有完全数,则还应该输出 no。 【输入样例1】 2 29
【输出样例1】 6 82
实现上述功能程序如下,请在划线处填入合适代码。 【程序清单】
#include
int x, y,i,t,w,xx,s,j, sum,p;
cin>>x>>y;
for(i= ① ;i<=y;i++) { s=1;
for(j=2;j<=sqrt(i);j++) //求出约数的之和 if( ② ) {
if(j*j!=i) ③ else s=s+j; }
if(s==i) //如果找到话就输出 {
w=w+l; while(s>0) {
④ ; s=s / 10; }
cout< if( w==0) ⑤ ; return 0; } 2.罗马数字 【问题描述】 聪明的泽泽经过独立的思考成功地找到了 x?y中所有的完全数,他在教室里兴奋得“一蹦三尺高”,还不停地攥紧拳头,髙呼“耶。。。。”。这时老师为了让他能够乘胜追击,锦上添 花,再次抛出了另一个数学游戏,叫做“罗马数字游戏”。老师先给大家描述这个游戏,游戏中的数字 1,2,3,4,5,6,7,8,9 分别写为’I’, ’II’, ’III’, ’IV’, ’V’, ’VI’, ’VII’, ’VIII’, ’IX’;将数字 10,20,30,40,50,60,70,80,90 分别写为’X’, ’XX’, ’XXX’, ’XU’, ’L’, ’LX’, ’LXX’, ’LXXX’, ’XC’。 那么其余的数字怎么用罗马数字表示呢?另外老师给了大家一点小提示:任何小于100 的数字都可以通过分别转换几十和几个后,结果可以用罗马数字组合在一起。例如,数字 48转换为40加8,因为40可用XL表示,8可用VIII表示,所以48可以组合成XLVIII。 本次游戏将会给你一个用罗马数字表示的数。请同学们重新排列这个字符,目的是找到用罗马数字表示的尽可能小的数字。 【输入格式】 输入一个整数B (1≤B<100),用罗马数字表示的整数。 【输出格式】 请根据输入的这个罗马数字,重新排列,以便找到最小的用罗马数字表示的整数。 【输入祥例1】 VII 【输出样例1】 VII 【输入样例2】 VI 【输出祥例2】 IV 为实现上述功能请在划线处填上合适代码。 【程序清单】 #include void sw( ⑥ ){ int i, j; for(i= ⑦ ) for(j=i+l;j if(x[i]>x[j]) { t=x[i] ;x[i] =x[j] ;x[j] =t; } } int main(){ a[l]= 'I'; a[2]= 'II'; a[3]= 'III'; a[4]= 'IV'; a[5]= 'V'; a[6]= 'VI'; a[7]= 'VII'; a[8]= 'VIII'; a[9]= 'IX'; a[10]= 'X'; a[20]= 'XX'; a[30]= 'XXX'; a[40]= 'XL'; a[50]= 'L'; a[60]= 'LX'; a[70]= 'LXX'; a[80]= 'LXXX'; a[90]= 'XC'; for(k=l;k<=99;k++) { y=a[K]; if (i !=0) ⑧ ; cin>>x; sw(x); for(k=l;k<=99;k++) { y=a[k]; if(x==y) { ⑩ ; return 0; } } return 0; } 幸福,不能用手去捉摸,只能用心去琢磨,只能静静去体味。细细地品味了,你就享受到了它温馨的暖,或浓或淡的甜!