1、计算机程序改错编程题程序改正错误题1.求出10,1000内所有能被7和9中至少一个数整除的整数的个数.set talk offclearn=0for x=10 to 1000if mod(x,7)=0 and mod(x,9)=0 and改orn=n+x n=n+1endifendfor? nset talk onreturn 2362.求出10,1000内所有能同时被7和9整除的整数之和。set talk offclears=0for x=10 to 1000if mod(x,7)=0 and mod(x,9)=0s=x s=s+xendifendfor? x ?sset talk onre
2、turn 75603.求出10,1000内所有能被6整除但不能被9整除的整数之和。set talk offclears=0for x=10 to 1000if mod(x,6)=0 or mod(x,9)=0 or mod(x,9)=0改 and mod(x,9)0x=s+x s=s+xendifendfor? sreturn 554404.求出10,1000内所有能被6和9中的一个且只有一个数整除的整数的个数。n=0for x=10 to 1000if mod(x,6)=0 and mod(x,9)!=0 and mod(x,6)!=0 and mod(x,9)=0 orn=x n=n+1e
3、ndifendfor? nreturn 1655.求出100,800内所有既不能被5整除也不能被7的整数的个数。n=0for x=100 to 800if mod(x,5)=0 and mod(x,7)0 if mod(x,5)0 and mod(x,7)0n=x+1 n=n+1endifendfor? x ?nreturn 4806.求出101,299内所有能被2整除但不能同时被3和5整除的整数之和。set talk offs=0for x=101 to 299if mod(x,2)=0 and not mod(x,3)=0 and mod(x,5)=0 ( )x=s+x s=s+xendi
4、fendfor? sreturn 186307.求出100以内最大的自然数n,使得从1开始的连续n个自然数的倒数之和小于3.5。set talk offclears=0for n=1 to 100s=(s+1)/n s=s+1/nif s=3.5loop exitendifendfor? n-1return 188.求出100以内最小的自然数n,使得从1开始的连续n个自然数的倒数之和大于3.6。set talk offclears=0for n=1 to 100s=s+1/nif s=3.6loop exitendifendfor? nset talk onreturn 219.求出100以内
5、最大的自然数n,使得从1开始的连续n个自然数的平方和小于5000。s=0for n=1 to 100s=s+n*2 s=s+n2if s=5000exitendifendfor? n ? n-1return 2410.求出100以内最小的自然数n,使得从1开始的连续n个自然数的平方之和大于5500。set talk offs=0for n=1 to 100s=s+n*nif s=5500exitendifendfor? s ? nreturn 2511.求出100以内最大的自然数n,使得从1开始的连续n个自然数的立方和小于20000。s=0for n=1 to 100s=s+n*3 s=s+n
6、3if s=20000exitendifendfor? n ? n-1return 1612.求出100以内最小的自然数n,使得从1开始的连续n个自然数的立方之和大于30000。s=0for n=1 to 100s=s+n*n*3 s=s+n3if s30000loop exitendifendfor? nreturn 1913.求出50以内最大的自然数n,使得从102开始的连续n个偶数之和小于3000。(23)s=0for n=1 to 50a=100+2*ns=s*a s=s+aif s=3000loop exitendifendfor? n-1return 2314.求出50以内最小的自
7、然数n,使得从102开始的连续n个偶数之和大于2000。s=0for n=1 to 50a=100+2*ns=s+aif s2000loop exitendifendfor? nreturn 1715.求出50以内最大的自然数n,使得从101开始的连续n个奇数之和小于2000。(17)set talk offclears=0for n=1 to 50a=99+2*ns=s+aif s2000exitendifendfor? n ? n-1return 1716.求出50以内最小的自然数n,使得从101开始的连续n个奇数之和大于3000。(25)set talk offclears=0for n
8、=1 to 50a=101+2*n a=99+2*ns=s+aif s3000exitendifendfor? s ? nset talk onreturn 2517.求出100以内使得算式1*2+2*3+n*(n+1)的值小于5000的最大的自然数n。(23)set talk offclears=0for n=1 to 100a=n*(n+1)s=s+aif s5000exitendifendfor? n ? n-1set talk onreturn 2318.求出100以内使得算式1*2+2*3+n*(n+1)的值大于6000的最小的自然数n。(26)set talk offclears=
9、0for n=1 to 100a=n*(n+1)s=s+aif s=6000loop exitendifendfor? nset talk onreturn 2619.求出100以内使得算式1*3+2*5+n*(2*n+1)的值小于10000的最大的自然数n。(23)set talk offclears=0for n=1 to 100a=n*2*(n+1) a=n*(2*n+1)s=s+aif s=10000loop exitendifendfor? n-1set talk onreturn 2320.求出100以内使得算式1+(1+2)+(1+2+n)的值小于1000的最大的自然数n。s=0
10、t=0for n=1 to 100s=s+nt=t+sif t1000exitendifendfor? n ? n-1retuen 1721.求出100以内使得算式1+(1+2)+(1+2+n)的值大于1500的最小的自然数n。(20)t=0s=0for n=1 to 100s=t+n s=s+nt=s+n t=t+sif t1500exitendifendfor? nreturn 20 22.求出100以内使得算式1/(1*2)+1/(2*3)+1/(n*(n+1)的值小于0.952的最大的自然数n。s=0for n=1 to 100s=s+1/n*(n+1) s=s+1/(n*(n+1)i
11、f s0.952exitendifendfor? n-1return 1923.求出100以内使得算式1/(1*1)+1/(2*3)+1/(n*(2n-1)的值大于1.35的最小的自然数n。s=0for n=1 to 100a=n*(2*n-1)s=s+a s=s+1/aif s1.35loop exitendifendfor? nreturn 1424.求出100以内的最大的自然数n,使得算式1+1/(1+2)+1/(1+2+n)的值小于1.9。s=0t=0for n=1 to 100s=s+1/n s=s+nt=t+s t=t+1/sif t=1.9exitendifendfor? n-1
12、return 18 25.求出100以内使得算式1+1/(1*2)+1/(1*2*n)的值大于1.71828的最小的自然数n。set talk offcleara=1.00000000s=0.00000000for n=1 to 100a=a/n a=a*ns=s+a s=s+1/aif s=1.71828loop exitendifendfor? nreturn 926.求出100以内最大的奇数n使得算式(1-1/2)+(1/3-1/4)+(1/n-1/(n+1)的值小于0.68。set talk offclears=0for n=1 to 100 step 2a=1/n-1/(n+1)s=
13、s+aif s0.68exitendifendfor? n-2set talk onreturn 3527.求出100以内使算式(1-1/2)+(1/3-1/4)+(1/n-1/(n+1)的值大于0.682的最小的奇数n。set talk offclears=0for n=1 to 100 for n=1 to 100 step 2a=1/n-1/(n+1)s=s+aif s=0.682exitendifendfor? nset talk onreturn 4528.某国在2000年时人口总数为1亿,若以每年3%的速度递增,试求出至少要到哪一年该国人口总数才会翻一翻。set talk offc
14、lears=1for n=2001 to 2100s=s*1.03if s=2 if s=2loop exitendifendfor? nset talk onreturn 202429.某国今年的人口总数为1亿,若以每年4%的速度递增,试求出至少要再过几年该国人口总数才会翻一翻。set talk offclears=0 s=1for n=1 to 100s=s*1.04if s=2loop exitendifendfor? nset talk onreturn 1830.设等比数列:1,2,4,8,求使得此数列的前n项之和大于100000的最小的自然数n。set talk offcleara
15、=1s=1 s=0for n=1 to 100s=s+aif s100000exitendifa=2+a a=2*aendfor? nreturn 1731.设等比数列:1,2,4,8,求使得此数列的前n项之和小于150000的最大的自然数n。cleara=1s=0for n=1 to 100s=s+aif s=150000exitendifa=2+a a=2*aendfor? n ?n-1return 1732.设等比数列:1,3,9,27,。求使得此数列的前n项之和大于2345678的最小的自然数n。a=1s=0for n=1 to 100s=s*a s=s+aif s2345678exi
16、tendifa=3+a a=3*aendfo? nreturn 1433.设等比数列:1,3,9,27,。求使得此数列的前n项之和小于3456789的最大的自然数n。a=1s=0for n=1 to 100s=s*a s=s+aif s3456789exitendifa=3*aendfor? n-1return 1434.求出45678的所有非平凡因子(即除1和它本身以外的约数)中奇数的个数。a=45678n=0for b=3 to a step 2if mod(b,a)=0 if mod(a,b)=0n=n+1endifendfor? b ? nreturn 735.求出203267的所有真
17、因子(即小于它本身的约数)中最大的。a=203267for b=1 to a for b=1 to a-1if mod(a,b)=0max=a max=bendifendfor? maxreturn 655736.求出20677和42067的最大公约数。a=20677b=42067for d=1 to a for d=1 to mod(b,a)-1if mod(a,d)=0 and mod(b,d)=0max=b max=dendifendfor? dreturn 71337.求出559399的所有非平凡因子(即除1和它本身以外的约数)中最小的。a=559399for n=2 to aif m
18、od(a,n)=0loop exitendifendfor? a ? nset talk onreturn 7338.求前1,100内能被6或8整除的所有自然数的平方根的和(将第1位小数四舍五入,结果只保留整数)。s=0for n=1 to 100if mod(n,6)=0 and mod(n,8)=0 and改ors=sqrt(s+n) s=s+sqrt(n)endifendfor? round(s,0)return 16239.求出9269和8671的最小公倍数。 算法提示:a与b的最小公倍数是a的倍数中第1个被b整除的数 a=9269b=8671for k=a to a*b step a
19、if mod(k,b)0 if mod(k,b)=0loop exitendifendfor? kreturn 26880140.求所有符合算式ab*ba=2701的最小的两位数ab(即a*10+b)。其中a、b是19之间的一位整数。for x=11 to 99a=x/10 a=int(x/10)b=mod(x,10)y=10*a+bif x*y=2701 if (b*10+a)*y=2701exitendifendfor? xreturn 3741.已知数列:1,2,4,7,11,16,,其规律是相邻两项之差依次是1,2,3,4,5,。试求出此数列中大于5000的最小的项。a=1for n=
20、0 to 1000a=a+n if a5000loop exit endifendfor? n ?areturn 505142.已知数列:1,2,4,7,11,16,,其规律是相邻两项之差依次是1,2,3,4,5,。试求出此数列中小于6000的最大的项。a=0 a=1for n=0 to 1000if a+n6000exit endifa=a+nendfor? areturn 599643.已知数列:1,2,4,7,11,16,,其规律是相邻两项之差依次是1,2,3,4,5,。求100以内最小的自然数n使得此数列的前n项之和大于800。a=0 a=1s=0for n=1 to 100a=a+n
21、s=s+a* ? n,a,sif s800exit endifendfor? nreturn 1744.已知数列f(n):f(1)=1,f(2)=4,当n=3,4,5,时,f(n)=3*f(n-1)-f(n-2)。试求出100以内最小的自然数n使得此数列的第n项大于7654321dimension f(100)f(1)=1f(2)=4for n=3 to 100f(n)=3*f(n-1)-f(n-2)if f(n)=7654321loop exitendifendfor? nreturn 1745.求出100以内最小的自然数n,使得从1开始的连续n个自然数的立方之和大于88888。s=0for
22、 n=1 to 100a=n*3 a=n3s=s+aif s88888exitendif endfor? a ?nreturn 2446.一球从100米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一高度的3/4倍,试求出最小的自然数n,使得此球从开始下落至第n次着地时在垂直方向所经过的总路程超过678米。h=100s=0 s=100for n=2 to 100h=h*3/4s=s+h s=s+2*hif s678exitendif endfor? nset talk onreturn 1347.一球从100米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一
23、高度的3/4倍,试求出最大的自然数n,使得此球从开始下落至第n次着地时在垂直方向所经过的总路程不超过590米。set talk offh=100s=0 s=100for n=1 to 100h=3/4*hs=s+2*hif s=590exitendifendfor? n-1 ?nreturn 648.设一数列f(n):f(1)=1,当n1时f(n)=1/(f(n-1)+1)。试求出此数列的前20项中小于0.618的项的数目。f=1.000000n=0for k=1 to 20f=1/f+1 f=1/(f+1)if f1时f(n)=1/(f(n-1)+1)。试求出此数列的前20项中大于0.618
24、的项的数目。f=1.00000000n=0for k=2 to 20 for k=1 to 20f=1/f+1 f=1/(f+1)if f0.618n=n+1endif * ? k,f,nendfor? nset talk onreturn 1550.设有用26个字母表示的26个表达式:a=1,b=1/(a+1),c=1/(b+2),z=1/(y+25)。试求出这26个字母中其值小于0.1的字母个数。set talk offlett=1n=0for k=1 to 26 for k=1 to 25lett=1/(lett+k)if lett54321n=n+1endiff1=f2f2=f3f3=
25、f1 f3=fendfor? nset talk onreturn 553.已知一个由分数组成的数列:1/2,3/5,8/13,21/34,其特点是:从其中第2个分数起,每个分数的分子都是前一分数的分子分母之和而其分母都是其分子与前一分数的分母之和。试求出此数列的前25项中其值大于0.618的项数。set talk offclearf1=1f2=2n=0for k=1 to 25f=f1/f2if f0.618n=n+1endiff1=f2 f1=f2+f1f2=f1 f2=f1+f2endfor? nset talk onreturn 2054.已知数列f(n):f(1)=1,f(2)=4,
26、当n=3,4,5,时,f(n)=3*f(n-1)-f(n-2)。试求出100以内最大的自然数n使得此数列的第n项不超过7654321。set talk offf1=1f2=4for n=3 to 100f=3*f2-f1* ? n,fif f=654321exitendif f1=f2f2=fendfor? n ?n-1return 1655.回文指的是正读和反读都一样的一串字符,如121、1221。试求出1421,4112内所有回文数的和。s=0for x=1421 to 4112a=x/1000 a=int(x/1000)b=int(x-a*1000)/100)c=int(x-a*1000-b*100)/10)d=x-a*1000-b*100-c*10if a=d and b=cs=s*x s=s+xendifendfor? sreturn 74250
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1