您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 程序设计练习题(参考程序)
程序设计练习题1程序设计练习题1、求出102285和126201的最大公约数。(注:在数学上,常用(A,B)表示A和B的最大公约数。且有结论:若有等式A=B*Q+R,则(A,B)=(B,R)。例如,因为62=20*3+2且20=2*10+0,所以(62,20)=(20,2)=(2,0)=2)SETTALKOFFCLEARA=102285B=126201FORI=1TOAIFMOD(A,I)=0ANDMOD(B,I)=0MAX=IENDIFENDFOR?MAXSETTALKONRETURN2、求S=1+(1+3)+(1+3+5)+……+(1+3+5+7+……+99)的值SETTALKOFFCLEARSUB=0FORN=1TO50S=0FORI=1TONS=S+2*I-1ENDFORSUB=SUB+SENDFOR?SUBSETTALKONRETURN3、梅森尼数是指能使2^N-1为素数的数N,求[1,21]范围内最大的梅森尼数?SETTALKOFFCLEARFORN=1TO21M=2^N-1FORI=2TOSQRT(M)IFMOD(M,I)=0EXITENDIFENDFORIFISQRT(M)B=NENDIF或SETTALKOFFCLEARA=559399B=539251DOWHILEB0R=MOD(A,B)A=BB=RENDDO?ASETTALKONRETURN程序设计练习题2ENDFOR?BSETTALKONRETURN4、已知数列:1,2,4,7,11,16,…,其规律是相邻两项之差依次是1,2,3,4,5,……。试求此数列的前30项的和。SETTALKOFFCLEARA=1&&用A表示已知数列的项,A=1为第一项S=1&&S表示列的和,以数列的第一项为初值FORN=1TO29A=A+N&&先计算数列的各项S=S+AENDFOR?SSETTALKONRETURN5、一个数如果等于其每一个数字立方之和,则称此数为阿姆斯特朗数。如407=4^3+0^3+7^3是一个阿姆斯特朗数。编程序输出[1,2000]之间所有的阿姆斯特朗数。SETTALKOFFCLEARFORI=1TO2000A1=MOD(I,10)A2=INT(MOD(I,100)/10)A3=INT(MOD(I,1000)/100)A4=INT(I/1000)IFI=A1^3+A2^3+A3^3+A4^3?IENDIFNEXTSETTALKONRETURN&&如果要求程序输出[1,2000]之间有多少个阿姆斯特朗数,程序应如何修改?&&如果要求程序输出[1,2000]之间最大的阿姆斯特朗数,程序应如何修改?&&如果要求程序输出[1,2000]之间最大的及第二大的阿姆斯特朗数,程序应如何修改?6、有一个4行5列的表,位于第M行第N列交叉处的数的值为M+N。求出表中所有数的和。SETTALKOFFCLEARS=0FORM=1TO4FORN=1TO5MN=M+NS=S+MNENDFOR程序设计练习题3ENDFOR?SSETTALKONRETUNR7、求出所有符合算式AB*BA=6624的两位数AB(即A*10+B)。其中A、B是0—9之间的一位整数。SETTALKOFFCLEARFORM=11TO99A=INT(M/10)B=MOD(M,10)N=B*10+AIFM*N=6624?MENDIFENDFORSETTALKONRETURN8、求[600,799]内的素数,且要求该素数至少有一位为9。问:(1)共有多少个?(2)其中最大一个数是多大?SETTALKOFFCLEARSUM=0BIGGEST=0FORI=600TO799FLAG=0FORJ=2TOSQRT(I)IFMOD(I,J)=0FLAG=1EXITENDIFENDFORIFFLAG=0AND9$STR(I)SUM=SUM+1BIGGEST=IENDIFENDFOR?[600,799]内至少有一位为9的素数有+LTRIM(STR(SUM))+个,其中最大的是+LTRIM(STR(BIGGEST))+。SETTALKONRETURN9、回文数是指正读和反读都一样的自然数、例如,8,121,5445这三个数都是回文数。试在[10,100000]之内找出既是完全平方数,又是回文数的整数。求:(1)共有多少个?(2)最大一个是多大?程序设计练习题4SETTALKOFFCLEARK=0FORM=10TO100000L=LEN(ALLTRIM(STR(M)))FORI=1TOL/2IFSUBSTR(ALLTRIM(STR(M)),I,1)SUBSTR(ALLTRIM(STR(M)),L-I+1,1)EXITENDIFENDFORIFIL/2K=K+1MAX=MENDIFENDFOR?K,MAXSETTALKONRETURN10、在[10000,20000]范围内考察个位数字是3的素数,问:(1)这样的素数有多少个?(2)其中最大的一个等于几?SETTALKOFFCLEARK=0FORN=10000TO20000FORI=2TOSQRT(N)IFMOD(N,I)=0EXITENDIFENDFORIFISQRT(N)ANDMOD(N,10)=3K=K+1MAX=NENDFIFENDFOR?K,MAXSETTALKONRETURN11、如果一个整数的最高位与最低位相同,次高位与次低位相同,依此类推,则称该数是对称的,特别是当整数只有一位数据时,也称它是对称的,例如:7,11,1221,45654等均称为对称的整数。计算:(1)在0~8500范围内有多少个对称的整数?(2)这些对称的整数中,为奇数的个数是多少?SETTALKOFFCLEAR程序设计练习题5K=0S=0FORM=1TO8500L=LEN(ALLTRIM(STR(M)))FORI=1TOL/2IFSUBSTR(ALLTRIM(STR(M)),I,1)SUBSTR(ALLTRIM(STR(M)),L-I+1,1)EXITENDIFENDFORIFIL/2K=K+1IFMOD(M,2)0S=S+1ENDIFENDIFENDFOR?K,SSETTALKONRETURN12、在[10000,20000]范围内考察个位数字是7的素数,问:(1)这样的素数有多少个?(2)其中最大的一个等于几?SETTALKOFFCLEARK=0FORN=10000TO20000FORI=2TOSQRT(N)IFMOD(N,I)=0EXITENDIFENDFORIFISQRT(N)ANDMOD(N,10)=7K=K+1MAX=NENDFIFENDFOR?K,MAXSETTALKONRETURN13、假定一个分数的分子和分母均是两位整数,求满足下列两个条件的该类分数的真分数:①分子的个位数与分母的十位数相同;②去掉分子的个位数和分母的十位数后,真分数的值不变。编程计算:(1)满足上述条件的真分数有多少个?(2)满足上述条件的最大真分数是多少?SETTALKOFF程序设计练习题6CLEARK=0MAX=0FORM=11TO99&&M为分母FORN=10TOM-1&&N为分子AM=MOD(M,10)BM=INT(M/10)AN=MOD(N,10)BN=INT(N/10)IFAN=BMANDBN/AM=N/MK=K+1IFN/MMAXMAX=N/MENDIFENDIFENDFORENDFOR?K,MAXSETTALKONRETURN14、如果一个数列的头两个数是0和1,从第三个数开始,每个数等于前两个数之和(即:0,1,1,2,3,5,8,13,……),则称该数列为裴波纳契数列,编程计算:(1)大于等于10000的第一个裴波纳契数是多少?(2)小于等于10000的裴波纳契数共有多少个?SETTALKOFFCLEARN=30DIMEF(N,2)F(1,1)=Fib(1)F(1,2)=0F(2,1)=Fib(2)F(2,2)=1FIRST=0K=0FORI=3TONF(I,1)=Fib(+ALLT(STR(I))+)F(I,2)=F(I-2,2)+F(I-1,2)ENDFORFORI=1TON?F(I,1),F(I,2)ENDFORFORI=1TONIFF(I,2)=10000FIRST=F(I,2)程序设计练习题7EXITELSEK=K+1ENDIFENDFOR?大于等于10000的第一个裴波纳契数是+ALLT(STR(FIRST))+,小于等于10000的裴波纳契数共有+ALLT(STR(K))+个。SETTALKONRETURN15、有一数列:A0,A1,……,AN,……,已知其取值为A0=0,A1=1,A2=2,从第四个数(即A3)开始,以后的每一个数均为最靠近该数的前面三个相邻数之和,(即对任意给定的整数I(I=3),均有AI=AI-1+AI-2+AI-3),请计算该数列的第35个数(即A34)或者其值刚好=10000的某个数(此两个条件只要求出现一个即可),问:(1)该数的值是多少?(2)该数是该数列的第几项?SETTALKOFFCLEARN=35LOCATIN=1DIMEF(N)F(1)=0F(2)=1F(3)=2FIRST=1FORI=4TONF(I)=F(I-3)+F(I-2)+F(I-1)ENDFORFORI=1TONIFF(I)=10000FIRST=F(I)LOCATION=IEXITENDIFENDFORIFI=N?该数的值是+ALLT(STR(FIRST))+,它是该数列的第+ALLT(STR(LOCATION))+个。ELSE?该数的值是+ALLT(STR(F(35)))+,它是该数列的第35个。ENDIFSETTALKONRETURN16、求[700,899]内的素数,且要求该素数至少有一位为1。问:(1)共有多少个?(2)其中最大一个数是多大?SETTALKOFFCLEAR程序设计练习题8SUM=0BIGGEST=0FORI=700TO899FLAG=0FORJ=2TOSQRT(I)IFMOD(I,J)=0FLAG=1EXITENDIFENDFORIFFLAG=0AND1$STR(I)SUM=SUM+1BIGGEST=IENDIFENDFOR?[700,899]内至少有一位为1的素数有+LTRIM(STR(SUM))+个,其中最大的是+LTRIM(STR(BIGGEST))+。SETTALKONRETURN17、老王和他的孙子年龄之差为60岁,都出生于20世纪,两人的出生年份分别被3,4,5和6除,余数均为1,2,3和4。问:(1)老王出生在哪一年?(2)老王的孙子出生在哪一年?SETTALKOFFCLEAROLD_WANG=1900FORY=1900TO1940IFMOD(Y,3)=1ANDMOD(Y,4)=2ANDMOD(Y,5)=3AND;MOD(Y,6)=4ANDMOD(Y+60,3)=1ANDMOD(Y+60,4)=2;ANDMOD(Y+60,5)=3ANDMOD(Y+60,6)=4OLD_WANG=YENDIFENDFOR?老王出生在+ALLT(STR(OLD_WANG))+年,他的孙子出生在+ALLT(STR(OLD_WANG+60))+年。SETTALKONRETURN18、求[200,399]内的素数,且要求该素数至少有一位为6。问:(1)共有多少个?(2)其中最大一个数是多大?SETTALKOFFCLEARSUM=0BIGGEST=0FORI=200TO399FLAG=0程序设计练习题9FORJ=2TOSQRT(I)IFMOD(I,J)=0FLAG=1EXITENDIFENDFORIFFLAG=0AND6$STR(I)SUM=SUM+1BIGGEST=IENDIFENDFOR?[200,399]内至少有一位为6的素数有+LTRIM(STR(SUM))+个,其中最大的是+LTRIM(STR(BIGGEST))+。SETTALKONRETURN19、一自然数平方的末几位与该数相同时,称此数为自同构数。例如,由于
本文标题:程序设计练习题(参考程序)
链接地址:https://www.777doc.com/doc-2238129 .html