09年程序编写
09年程序编写题参考答案
1、编写程序,求在四位数的偶数中,所有各位数字之和是15的倍数的数的和。正确答案1592376
s=0
for x=1000 to 9999 step 2
a=int(x/1000)
b=int(mod(x,1000)/100)
c=int(mod(x,100)/10)
d=mod(x,10)
if mod(a+b+c+d,15)=0
s=s+x
endif
endfor
?s
2、一个数如果刚好与它所有的因子之和相等,则称该数为一个“完数”,如...
09年程序编写题参考答案
1、编写程序,求在四位数的偶数中,所有各位数字之和是15的倍数的数的和。正确答案1592376
s=0
for x=1000 to 9999 step 2
a=int(x/1000)
b=int(mod(x,1000)/100)
c=int(mod(x,100)/10)
d=mod(x,10)
if mod(a+b+c+d,15)=0
s=s+x
endif
endfor
?s
2、一个数如果刚好与它所有的因子之和相等,则称该数为一个“完数”,如:6=1+2+3,则6就是一个完数。求出1000以内的完数的个数。正确答案3
n=0
for i=1 to 1000
s=0
for j=1 to i-1
if mod(i,j)=0
s=s+j
endif
endfor
if i=s
n=n+1
endif
endfor
?n
3、编写程序,求四位数的奇数中,所有各位数字之积(且不为0)是60的倍数的数的和。
s=0
for i=1001 to 9999 step 2
a=int(i/1000)
b=int(mod(i,1000)/100)
c=int(mod(i,100)/10)
d=mod(i,10)
if a*b*c*d<>0 and mod(a*b*c*d,60)=0
s=s+i
endif
endfor
?s
4、"水仙花数"是指这样的数,其各位数字的立方和等于该数本身。编写程序计算从100年开始到2000年为止,共有多少个年号为水仙花数年号。
正确答案4
n=0
for i=100 to 2000
a=int(i/1000)
b=int(mod(i,1000)/100)
c=int(mod(i,100)/10)
d=mod(i,10)
if a^3+b^3+c**3+d**3=i
n=n+1
endif
endfor
?n
5、编写程序,求满足下列条件的所有四位数abcd的个数,该四位数是8的倍数,且a+b=b+c,即第1位数加上第2位数等于第2位数加上第3位数。
正确答案110
n=0
for x=1000 to 9999
a=int(x/1000)
b=int(mod(x,1000)/100)
c=int(mod(x,100)/10)
if mod(x,8)=0 and a+b=b+c
n=n+1
endif
endfor
?n
6、编写程序,求满足下列条件的所有四位数abcd的个数,该四位数是11的倍数,且a=b+c,即第2位数加上第3位数等于第1位数。
正确答案49
n=0
for x=1000 to 9999
a=int(x/1000)
b=int(mod(x,1000)/100)
c=int(mod(x,100)/10)
if mod(x,11)=0 and a=b+c
n=n+1
endif
endfor
?n
7、编写程序,求四位数的奇数中,所有各位数字之积(且不为0)是125的倍数的数的和。正确答案161095
s=0
for x=1001 to 9999 step 2
a=int(x/1000)
b=int(mod(x,1000)/100)
c=int(mod(x,100)/10)
d=mod(x,10)
if mod(a*b*c*d,125)=0 and a*b*c*d<>0
s=s+x
endif
endfor
?s
8、50元的整币兑换成5元、2元和1元币值(三种币值均有、缺少一种或两种都计算在内)的方法有多少种。
正确答案146
n=0
for wu=0 to 10
for er= 0 to 25
for yi=0 to 50
if yi+2*er+5*wu=50
n=n+1
endif
endfor
endfor
endfor
?n
9、(x,y,z)满足方程:x^2+y^2+z^2=55^2(注:要求 x > y > z),则(x,y,z)称为方程的一个解。试求方程的整数解(包括负整数解)的个数。
正确答案62
n=0
for x=-55 to 55
for y=-55 to x-1
for z=-55 to y-1
if x^2+y^2+z^2=55^2
n=n+1
endif
endfor
endfor
endfor
?n
10、已知:非等腰三角形最长边是60,其他两边的长度都是正整数,且三边之和能被3整除。试编程求取这类三角形的个数。正确答案271
n=0
for i=1 to 59
for j=1 to i-1
if mod(i+j,3)=0 and i+j>60
n=n+1
endif
endf
endf
?n
11、已知a,b为正整数, a
s
mins=s
minb=b
endi
endf
endf
? minb
12、猴吃桃:有一天小猴子摘下了若干个桃子,当即吃掉一半,还觉得不过瘾,又多吃了一个.第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后每天都吃尚存桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩下一个桃子了。问小猴子第一天共摘下了多少个桃子。正确答案1534
x=1
for i=1 to 9
x=(x+1)*2
endf
?x
13、a,b,c是三个小于或等于100正整数,当满足1/a^2+1/b^2=1/c^2关系时,称为倒勾股数。求130b>c的倒勾股数有多少组。
正确答案6
n=0
for a=1 to 100
for b=1 to a-1
for c=1 to b-1
if 1/a^2+1/b^2=1/c^2 and a+b+c>130 and a+b+c<150
n=n+1
endif
endfor
endfor
endfor
?n
14、有5羊4犬3鸡2兔值钱1496,4羊2犬6鸡3兔值钱1175,3羊1犬7鸡5兔值钱958,2羊3犬5鸡1兔值钱861,问兔值钱多少?正确答案29
for x=0 to 500
for y=0 to 200
for z=0 to 200
p=861-2*x-3*y-5*z
if 5*x+4*y+3*z+2*p=1496 and 4*x+2*y+6*z+3*p=1175 and 3*x+1*y+7*z+5*p=958
?p
endif
endfor
endf
endf
15、编写程序,计算1000以内有多少个这样的数,其十位数为6且能被8整除。
正确答案15
n=0
for i=1 to 1000
sw=int(mod(i,100)/10)
if sw=6 and mod(i,8)=0
n=n+1
endif
endfor
?n
16、编写程序,计算在[0,60]的范围内有多少个数,其每位数的乘积大于每位数的和。
31
n=0
for i=1 to 60
a=int(i/10)
b=mod(i,10)
if a*b>a+b
n=n+1
endif
endfor
?n
17、编写程序,求出100到500之间同时满足除3余2和除5余3条件的数的个数。
正确答案26
n=0
for i=100 to 500
if mod(i,3)=2 and mod(i,5)=3
n=n+1
endif
endfor
?n
18、编写程序,求三位数的偶数中,所有各位数字之和是15的倍数的数的个数。正确答案34
n=0
for x=100 to 999 step 2
a=int(x/100)
b=int(mod(x,100)/10)
c=mod(x,10)
if mod(a+b+c,15)=0
n=n+1
endif
endfor
?n
19、求五位数各位数字的平方和为100的最大的五位数。
正确答案94111
s=0
mx=0
for i=10000 to 99999
a=int(i/10000)
b=int(mod(i,10000)/1000)
c=int(mod(i,1000)/100)
d=int(mod(i,100)/10)
e=mod(i,10)
if a^2+b^2+c^2+d^2+e^2=100 and i>mx
mx=i
endif
endfor
?mx
20、编写程序,求1到5000之间的能被5整除的前若干个偶数之和,当和值大于500时退出,输出该和值。正确答案 550
s=0
for i=2 to 5000 step 2
if mod(i,5)=0
s=s+i
endif
if s>500
exit
endif
endf
?s
21、有一个三位数满足下列条件:(1)此三位数的三位数字各不相同;(2)此三位数等于它的各位数字的立方和;试求所有这样的三位数这,第二大的是多少?正确答案371
for i=100 to 999
a=int(i/100)
b=int(mod(i,100)/10)
c=mod(i,10)
if a<>b and b<>c and a**3+b^3+c^3=i
?i
endif
endfor
22、求在[2,1000]之间的所有同构数之和(某正整数的平方,其低位与该数本身相同,则称该数为同构数。例如25^2=625,625的低位25与原数相同,则称25为同构数)。正确答案1113
s=0
for i=2 to 1000
k=i^2
l=len(alltrim(str(i))) && 测试是几位数
if val(right(str(k),l))=i
s=s+i
endif
endfor
? s
23、编写程序,求在5000以内能被17或者23整除的正整数的个数。正确答案499
n=0
for i=1 to 5000
if mod(i,17)=0 or mod(i,23)=0
n=n+1
endif
endfor
?n
24、编写程序,求在四位数的偶数中,所有各位数字之和是30的倍数的数的和。
正确答案288840
s=0
for x=1000 to 9999 step 2
a=int(x/1000)
b=int(mod(x,1000)/100)
c=int(mod(x,100)/10)
d=mod(x,10)
if mod(a+b+c+d,15)=0
s=s+x
endif
endfor
?s
25、编写程序,求一正整数等差数列的前六项的和,该数列前四项之和是26,四项之积是880。
正确答案57
for a=1 to 26
for d=1 to 26
if 4*a+6*d=26 and a*(a+d)*(a+2*d)*(a+3*d)=880
?6*a+15*d
endi
endfor
endfor
26、编写程序,已知:s=1+3+5+7+9+…,求s不大于9000的最大值。
正确答案8836
i=1
s=1
do while s<9000
i=i+2
s=s+i
enddo
?s-i
27、编写程序,求共有几组i,j,k符合算式ijk+kji=1534,其中i,j,k是[0,9]之间的一个整数且i=x
y=b*10+a
for j=2 to y-1
if mod(y,j)=0
exit
endif
endf
if j>=y
s=s+y
endif
endif
endf
?s
35、除1和它本身外,不能被其它整数整除的正整数称为素数(注:1不是素数,2是素数)。若两素数之差为2 ,则称两素数为双胞胎数,问[31,601]之间有多少对双胞胎数。正确答案
22
n=0
t=31
for i=31 to 601
f=1
for a=2 to i-1
if mod(i,a)=0
f=0
exit
endif
endfor
if f=1
if i-t=2
n=n+1
endif
t=i
endif
endfor
?n
36、自然数对是指两个自然数的和与差都是平方数,如8和17的和8+17=25与其差17-8=9都是平方数,则称8和17是自然数对(8,17)。假定(a,b)与(b,a)是同一个自然数对且假定a>=b,求所有小于或等于100(即:a<=100,b<=100,a<>b,a和b均不为0)的自然数对中b之和。正确答案1160
s=0
for a=1 to 100
for b=1 to a-1
if sqrt(a+b)=int(sqrt(a+b)) and sqrt(abs(a-b))=int(sqrt(abs(a-b)))
s=s+b
endif
endf
endf
?s
37、编写程序,求出3到100之间的所有非偶数非素数的数之和。
正确答案1441
s=0
for i=3 to 100
for j=2 to i-1
if mod(i,j)=0 and mod(i,2)<>0
s=s+i
exit
endif
endfor
endfor
? s
38、斐波那契数列的前二项是1,1,其后每一项都是前面两项之和,求:10000000以内最大的斐波那契数?
正确答案9227465
dimension f(1000)
f(1)=1
f(2)=1
for n=3 to 1000
f(n)=f(n-1)+f(n-2)
if f(n)<=10000000
max=f(n)
endif
endfor
?max
39、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求所有两位绝对素数的和。正确答案429
s=0
for x=10 to 99
for i=2 to x-1
a=int(x/10)
b=mod(x,10)
if mod(x,i)=0
exit
endif
endf
if i>=x
y=b*10+a
for j=2 to y-1
if mod(y,j)=0
exit
endif
endf
if j>=y
s=s+y
endif
endif
endf
?s
40、计算y=x/1!-x^3/3!+x^5/5!-x^7/7!+……前20项的值(已知:x=2)。要求:按四舍五入的方式精确到小数点后第二位。
正确答案0.91
s=0
x=2
for i=1 to 20
t=1
for j=1 to 2*i-1
t=t*j
endfor
s=s+x^(2*i-1)/t
x=-x
endfor
?round(s,2)
41、数列:e(1)=e(2)=1 ,e(n)=(n-1)*e(n-1)+(n-2)*e(n-2) (n>2)称为e数列,每一个e(n),(n=1,2,…)称为e数。求[1,30000]之内e数的个数。
正确答案8
dimension e(30000)
e(1)=1
e(2)=1
s=2
for n=3 to 30000
e(n)=e(n-2)*(n-2)+e(n-1)*(n-1)
if e(n)<30000
s=s+1
endif
endfor
?s
42、已知:f(0)=f(1)=1 f(2)=0 f(n)=f(n-1)-2*f(n-2)+f(n-3) (n>2)
求f(0)到f(50)中的最大值。
正确答案598325
max=1
dimension f(51)
f(1)=1
f(2)=1
f(3)=0
for n=4 to 51
f(n)=f(n-1)-2*f(n-2)+f(n-3)
if max
本文档为【09年程序编写】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。