信息学奥林匹克竞赛辅导程序设计试题答案部分
第1页
程序设计试题及答案
(备注:试题难度评价采取五★级评价体系,分基础、容易、一般、稍难、难五个等级,其中的一、二、三★级都属于
程序设计的基础试题级别,同学们稍加思考均有能力求得正确解答,对于四★级试题属于程序设计试题基础级别的
思考题,五★级难度试题在此没有涉及,在程序设计高级试题中另行讲解。对于基础和容易两个级别的程序设计试
题,若能够给出语句分类(如If条件语句、条件语句嵌套、循环语句、多重循环语句等)的将尽量给出。若属于13
大类别的将尽量标注。)
程序设计试题几大分类:1、1素数类问题(求素数的几种算法):2、数据排序问题(数据排序的几种方法):3、最大公约数和最小公倍数问题(几种算法):4、公式求解类问题(如求圆周率π、自然常数e、解方程等等):5、编号相反处理问题:6、约瑟夫问题(或猴子选大王问题、密码问题):7、回文数问题:8、高精度数值计算问题:9、数值计算问题:10、进制相互转换问题:11、字符串倒置问题:12、排列与组合类问题:13、因子、质因子(质因数)类相关问题:
答案部分:
(程序设计的源程序没有统一的标准答案,实现程序的算法也是多种多样,但结果是唯一的,算法也有优劣之分,一
个程序的优劣,关键在于是否找到了好的算法,以下程序和算法不一定就是最佳算法和最佳程序,只能仅供参考,
希望同学们能够对某些程序提出更好的算法来改进程序)
(经常碰到的判断是否为素数、是否为回文数、求两个数的最大公约数、求两个数的最小公倍数等问题的子函数源程序,请务必记住!)
①判断是否为素数,若是素数则返回true,若不是素数则返回false:
fu
ctio
primexlo
gi
tboolea
varjylo
gi
tbegi
primetrueifx2the
primefalseytru
csqrtxforj2toydoifxmodj0the
begi
primefalseexite
de
d
备注:1~100之间所有的素数:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、
f信息学奥林匹克竞赛辅导程序设计试题答案部分
第2页
73、79、83、89、97。(共25个)②判断是否为回文数,若是回文数则返回true,若不是回文数则返回false:
fu
ctio
huiwe
lo
gi
tboolea
var
mijlo
gi
t
aarray110ofi
teger
begi
if
0the
begi
huiwe
falseexite
d
m
i0huiwe
true
repeat
ii1
aimmod10
mmdiv10
u
tilm0
forj1toidiv2do
ifajaij1the
begi
huiwe
falseexite
d
e
d③求最大公约数子函数,返回两个正整数的最r