为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

09年程序编写

2009-05-25 8页 doc 110KB 18阅读

用户头像

is_966880

暂无简介

举报
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年程序编写
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为正整数, as 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,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索