2010年程序改错、填空、编写答案 联系客服

发布时间 : 星期日 文章2010年程序改错、填空、编写答案更新完毕开始阅读

if x

if (a+b)/(c+d)=x/y d=x+y s=s+d endif endif endf endf ?s 32、若两个连续的自然数的乘积减1后是素数,则称此两个连续自然数为友数对,该素数称为友素数。例如,由于 8*9-1=71, 因此8与9是友数对,71是友素数。求[50,150]之间的友数对的数目。正确答案38 n=0

for i=50 to 149 flag=1

a=i*(i+1)-1 for j=2 to a-1 if mod(a,j)=0 flag=0 exit endif endfor if flag=1 n=n+1 endif endfor ? n

33、求[1,50]之间的所有整数能构成直角三角形的三边的组数。例如3*3+4*4=5*5,它们构成直角三角形。所以{3,4,5}作为一组。但{4,3,5}视为{3,4,5}相同的一组。正确答案20 n=0

for c=1 to 50 for a=1 to c for b=1 to a if a^2+b^2=c^2 n=n+1 endif endf endf endf ?n

34、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求两位数中最大的绝对素数。 正确答案97 Max=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 and y>max max=y

endif endif endf ?max

35、除1和它本身外,不能被其它整数整除的正整数称为素数(注:1不是素数,2是素数)。若两素数之差为2 ,则称两素数为双胞胎数,问[200,1000]之间有多少对双胞胎数。正确答案 20 n=0 t=31

for i=201 to 998 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

9

endif t=i endif endfor ?n

36、自然数对是指两个自然数的和与差都是平方数,如8和17的和8+17=25与其差17-8=9都是平方数,则称8和17是自然数对(8,17)。 endif endfor ?max

39、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求所有两位绝对素数的和。正确答案429 s=0

假定(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)

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)

10

41、数列:e(1)=e(2)=1 ,

e(n)=(n-1)*e(n-1)+(n-2)*e(n-2) (n>2)s=0 a=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

43、某一正整数,进行递减,每次将该数减半后再减一,当对该数进行第10次减半时发现该数只剩下1不能再减了,求该数。 正确答案1534 x=1

for i=1 to 9 x=(x+1)*2 endf ?x

44、求数列:2/1,3/2,5/3,8/5,13/8,21/13,?? 前50项之和(注:此数列从第二项开始,其分子是前一项的分子与分母之和,其分母是前一项的分子)。(按四舍五入的方式精确到小数点后第二位)正确答案81.20

b=1

for i=1 to 50 s=s+a/b t=a a=a+b b=t next

?round(s,2)

45、已知:f(n)=f(n-1)+2*f(n-2)-5*f(n-3), f(0)=1, f(1)=2, f(2)=3,求f(0)+f(1)+?f(30)。 正确答案-750874 dimension f(31) f(1)=1 f(2)=2 f(3)=3 s=6

for n=4 to 31

f(n)=f(n-1)+2*f(n-2)-5*f(n-3) s=s+f(n) endf ?s

46、已知:a1=1, a2=1/(1+a1), a3=1/(1+a2), a4=1/(1+a3), ??, 求a50.(按四舍五入的方式精确到小数点后第三位)。 正确答案0.618

dimension a(50) a(1)=1

for n=2 to 50

a(n)=1/(1+a(n-1)) endfor

?round(a(50),3)

47、当n=100时,计算

s=(1-1/2)+(1/3-1/4)+??+(1/(2n-1)-1/(2n))的值。要求:按照四舍五入的方式精确到小数点后第三位。正确答案0.691 s=0

for n=1 to 100

x=(1/(2*n-1)-1/(2*n)) s=s+x endfor

?round(s,3)

11