《VFP程序设_计题(_省二必备).doc》由会员分享,可在线阅读,更多相关《VFP程序设_计题(_省二必备).doc(19页珍藏版)》请在金锄头文库上搜索。
1、1、求100以内最大的自然数N,使得从1开始的连续N个自然数的倒数之和小于3.5。SET TALK OFFCLEARS=0FOR N=1 TO 100 S=(S+1)/N 改正:S=S+1/N IF S=3.5 LOOP 改正:EXIT ENDIFENDFOR? N-1SET TALK ONRETURN 运行结果:182、求100以内最小的自然数N,使得从1开始的连续N个自然数的倒数之和大于3.6。SET TALK OFFCLEARS=0FOR N=1 TO 100S=S+1/NIF S3.6 LOOP 改正:EXITENDIFENDFOR? NSET TALK ONRETURN 运行结果:2
2、13、求50以内最大的自然数N,使得从102开始的连续N个偶数之和小于3000。SET TALK OFFCLEARS=0FOR N=1 TO 50A=100+2*N S=S*A 改正:S=S+A IF S=3000 LOOP 改正:EXIT ENDIFENDFOR? N-1SET TALK ONRETURN 运行结果:234、求50以内最小的自然数N,使得从102开始的连续N个偶数之和大于2000。SET TALK OFFCLEARS=0FOR N=1 TO 50A=102+2*N 改正:A=100+2*NS=S+AIF S2000 LOOP 改正:EXITENDIFENDFOR? NSET
3、TALK ONRETURN 运行结果:175、求出100以内使得算式1*2+2*3+N*(N+1)的值小于5000的最大的自然数N。SET TALK OFFCLEARS=0FOR N=1 TO 100A=N*(N+1)S=S+AIF S5000 EXITENDIFENDFOR? N 改正:? N-1SET TALK ONRETURN 运行结果:236、求出100以内使得算式1*2+2*3+N*(N+1)的值大于6000的最小的自然数N。SET TALK OFFCLEAR S=0FOR N=1 TO 100 A=N*(N+1) S=S+A IF S6000 LOOP 改正:EXIT ENDIFE
4、NDFOR? NSET TALK ONRETURN 运行结果:267、求出100以内使得算式1+(1+2)+(1+2+N)的值小于1000的最大的自然数N。SET TALK OFFCLEARS=0T=0FOR N=1 TO 100 S=S+N T=T+S IF T1000 EXIT ENDIFENDFOR? N 改正:? N-1SET TALK ONRETURN 运行结果:178、求出100以内最大的奇数N使得算式(1-1/2)+(1/3-1/4)+(1/N-1/(N+1)的值小于0.68。 SET TALK OFF CLEAR S=0 FOR N=1 TO 100 STEP 2 A=1/N-
5、1/(N+1) S=S+A IF S0.68 EXIT ENDIF ENDFOR ? N-2 SET TALK ON RETURN 运行结果:359、某国在2000年时人口总数为1亿,若以每年3%的速度递增,试求出至少要到哪一年该国人口总数才会翻一翻。 SET TALK OFF CLEAR S=1 FOR N=2001 TO 2100 S=S*1.03 IF S=2 改正:IF S=2 LOOP 改正:EXIT ENDIF ENDFOR ? N SET TALK ON RETURN 运行结果:20249、设等比数列:1,2,4,8,。求使得此数列的前N项之和大于100000的最小的自然数N。
6、SET TALK OFF CLEAR A=1 S=1 改正:S=0 FOR N=1 TO 100 S=S+A IF S100000 EXIT ENDIF A=2+A 改正:A=A*2 ENDFOR ? N SET TALK ON RETURN 运行结果:1710、设等比数列:1,2,4,8,。求使得此数列的前N项之和小于2345678的最大的自然数N。 SET TALK OFF CLEAR A=1 S=0 FOR N=1 TO 100 S=S+A IF S=2345678 EXIT ENDIF A=2+A 改正:A=A*2 ENDFOR ? N 改正:? N-1 SET TALK ON RET
7、URN 运行结果:2111、求出45678的所有非平凡因子(即除1和它本身以外的约数)中是奇数的因子个数。 SET TALK OFF CLEAR A=45678 N=0 FOR B=3 TO A STEP 2 IF MOD(B,A)=0 改正:IF MOD(A,B)=0 N=N+1 ENDIF ENDFOR ? B 改正:? N SET TALK ON RETURN 运行结果:712、求出20677和42067的最大公约数。 SET TALK OFF CLEAR A=20677 B=42067 FOR D=1 TO A IF MOD(A,D)=0 AND MOD(B,D)=0 MAX=B 改正
8、:MAX=D ENDIF ENDFOR ? D 改正:MAX SET TALK ON RETURN 运行结果:71313、求前1,100内能被6或8整除的所有自然数的平方根的和(将第1位小数四舍五入,结果只保留整数)。 SET TALK OFF CLEAR S=0 FOR N=1 TO 100 IF MOD(N,6)=0 AND MOD(N,8)=0 改正:IF MOD(N,6)=0 OR MOD(N,8)=0 S=SQRT(S+N) 改正:S= S+SQRT(N) ENDIF ENDFOR ? ROUND(S,0) SET TALK ON RETURN 运行结果:16214、求所有符合算式A
9、B*BA=2701的最小的两位数AB(即A*10+B)。其中A、B是19之间的一位整数。 SET TALK OFF CLEAR FOR X=11 TO 99 A=X/10 改正:A=INT(X/10) B=MOD(X,10) Y=10*A+B 改正:Y=10*B+A IF X*Y=2701 EXIT ENDIF ENDFOR ? X SET TALK ON RETURN 运行结果:3715、已知数列:1,2,4,7,11,16,,其规律是相邻两项之差依次是1,2,3,4,5,。试求出此数列中大于5000的最小的项。 SET TALK OFF CLEAR A=1 FOR N=0 TO 1000
10、A=A+N IF A5000 LOOP 改正:EXIT ENDIF ENDFOR ? N 改正:? A SET TALK ON RETURN 运行结果:505116、已知数列:1,2,4,7,11,16,,其规律是相邻两项之差依次是1,2,3,4,5,。试求出此数列中小于6000的最大的项。 SET TALK OFF CLEAR A=0 改正:A=1 FOR N=0 TO 1000 IF A+N6000 EXIT ENDIF A=A+N ENDFOR ? A SET TALK ON RETURN 运行结果:599617、已知数列F(N):F(1)=1,F(2)=4,当N=3,4,5,时,F(N)=3*F(N-1)-F(N-2)。试求出100以内最小的自然数N使得此数列的第N项大于87654321。 SET TALK OFF CLEAR DIMENSION F(100) F(1)=1 F(2)=4 FOR N=3 TO 100 F(N)=3*F(N-1)-F(N-2) IF F(N)=87654321