青少年信息学竞赛33个初级篇试题
1. 输入10个正整数,计算它们的和,平方和;
2. 输入20个整数,统计其中正、负和零的个数;
3. 在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数;
4. 输出1——999中能被3整除,且至少有一位数字是5的数;
5. 输入20个数,求出它们的最大值、最小值和平均值。
6. 甲、乙、丙三人共有384本书,先由甲分给乙、丙,所给书数分别等于乙、丙已有的书数,再由乙分给甲、丙,最后由丙分给甲、乙,分法同前,结果三人图书数相等。编程求甲、乙、丙三人原各有书多少本?
7. 某养金鱼爱好者,决定出售他的金鱼。第一次卖出了全部金鱼的一半加2分之一条金鱼;第二次卖出剩金鱼的三分之一加三分之一条金鱼;第三次卖出剩金鱼的四分之一加四分之一条金鱼;第四次卖出剩金鱼的五分之一加五分之一条金鱼,最后还剩11条。问原来有多少条金鱼?(每次卖的金鱼都是整数条)
8. 猴子吃桃子问题:猴子第一天摘下若干个桃子,当即吃了一半还不过瘾,又多吃了一个;第二天又将剩下的桃子吃掉一半又多吃了一个;以后每天早上都吃了前一天剩下的一半零一个。到了第十天想再吃时,见只剩下一个桃子,求第一天共摘了多少个桃子?
9. 从键盘输入整数l,统计出边长为整数的周长为l的不等边三角形的个数。
10. 输入三个整数,以这三个数为边长,判断是否构成三角形; 若构成三角形,进一步判断它们构的是:锐角三角形或直角三角形或钝角三角形。
11. 1*2*3*...*1000结果是一个很大的数,求这个数末尾有多少个连续的零。
12. 任意输入两个整数,求这两个整数的最大公约数,并求这两个整数的最小公倍数。
13. 一个整数的立方可以表示为两个整数的平方差,如19853=19711052-19691202。
编程:输入一个整数N,自动将其写成N3=X2-Y2。
14. 求100以内的所有素数。纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数。这样下去一直到最后剩下的个位数也还是素数。求出所有小于3000的四位的纯粹素数。
15. 验证回文数的猜测:左右对称的自然数称回文数。如121,4224,13731等,有人猜测:从任意一个两位或两位以上的自然数开始,将该数与它的逆序数(如1992的逆序数是2991)相加,得到一个新数,再用这个新数与它的逆序数相加,不断重复上述操作,经过若干步的逆序相加之后,总可以得到一个回文数,
例如:从1992开始,1992+2991=4983; 4983+3894=8877;8877+7788=16665;16665+56661=73326;73326+62337=135663; 135663+366531=502194;502194+491205=993399。经过七步就得到了回文数。
设计一个程序,由计算机在局部范围内验证回文数的猜测,并将寻找回文数的每一个步骤都显示出来。
16. 已知一个正整数的个位数为7,将7移到该数的首位,其它数字顺序不变,则得到的新数恰好是原数的7倍,编程找出满足上述要求的最小自然数。
17. 任意一个大于9的整数减去它的各位数字之和的差,一定能被9整除。
18. 有一个六位数,其个位数字7,现将个位数字移至首位(十万位),而其余各位数字顺序不变,均后退一们,得到一个新的六位数,假如旧数为新数的4倍,求原来的六位数。
20. 将1至9这几个数字排成3x3方阵,并使每一横行的三个数字组成一个三位数。如果要使第三行的三位数是第一行的两倍,第三行的三位数是第一的三倍,应怎样排法?编程找出所有排法。
21. 一个合数(质数的反数),去掉最低位,剩下的数仍是合数,再去掉剩下的数的最低位,余留下来的数还是合数,这样反复,一直到最后公剩下的一位数仍是合数;我们把这样的数称为纯粹合数。求所有的三位纯粹合数。
22. 输入一个大于1的整数,打印出它的素数分解式。如输入75,则打印:"75=3*5*5"。
23. 某自然数n的所有素数的平方和等于n,(1<100),请找出二个这样的自然数n。
24. 若某个自然数的所有小于自身的素数之和恰好等于其自身,则该自然数称为一个完全数。
例如:6是一个完全数,6=1+2+3。目前至少发现29个完全数。
编程找出三个最小的完全数。
25. 一个自然数,若它的素因数至少是两重的(相同的素因数至少个数为二个,如:36=2*2*3*3),则称该数为"漂亮数"。若相邻的两个自然数都是"漂亮数",就称它们为"孪生漂亮数",例如8和9就是一对"孪生漂亮数"。
编程再找出一对"孪生漂亮数"。
26. 每一个素数的倒数都可以化为一个循环小数,例如:1/7可以化为0.(142857),1/13可化为0.(076923)。
编程把1997的倒数化为循环小数,并统计出这个循环小数有多少位。
27. 59=52+52+32=72+32+12,即59可以分别等于两组不同的自然数(每组各3个数)的二次幂之和,请找出10个最小的具有这种特性的数。
28. 验证2147483647是一个素数(质数)。
29. 如果一个数从左边读和右边读都是同一个数,就称为回文数,例如686就是一个回文数。
编程求1000以内所有的既是回文数同时又是素数的自然数。
30. 有这样的一个六位数字labcde,将其乘以3后变成abcdel,编程求这个数。
31. 试找出6个小于160而成等差数列的素数。
32. 已知数列1、5、12、22、35、。。。。编程求该数列的前50项。
33. 求数列1、5、17、53、161、。。。前20项的和。
推荐阅读: