s=s+1/i endfor
?str(s,10,2)
[4]编写程序,求出1到5000 之间能被3整除的前若干个奇数之和,当和大于 2000 时程序退出。 clear s=0
for i=1 to 5000 step 2 if mod(i,3)=0 s=s+i endif if s>2000 exit endif endfor ? s
[5]编写程序,求3+6+12+24+48+ ?之和。当累加和大于500时终止累加,输出此时的和。 clear s=0 i=3
do while .t. s=s+i if s>500 exit endif i=i*2 enddo ?s
第三类题目:实际应用题目
[1]把30元钱分成一元、二元和五元的纸币且纸币数共为15张的分法有多少种?(注:在兑换中一元、二元、五元的纸币数可以为0)。 clear n=0
for one=0 to 15
for two=0 to 15 for five=0 to 6
if one+two+five=15 and one+two*2+five*5=30 n=n+1 endif endfor endfor endfor ?n
[2]有35个学生一起买小吃,共花钱100元,其中每个大学生花4元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为0的解)? clear n=0
for a=1 to 35
29
for b=1 to 35 for c=1 to 35
if a+b+c=35 and a*4+b*2+c*1=100 n=n+1 endif endfor endfor endfor ?n
第四类题目
[1]已知a>b>c,且a+b+c<30,求满足条件1/(a^2)+1/(b^2)=1/(c^2)的共有多少组。 clear n=0
for a=1 to 29
for b=1 to a-1 for c=1 to b-1
if a+b+c<30 and 1/a^2+1/b^2=1/c^2 n=n+1 endif next next next ?n
[2]编写程序,求200到800之间素数的个数。 方法1:
clear 方法2:
Clear n=0 n=0
for x=200 to 800
for i=200 to 800 flag=.t.
for j=2 to i-1
for i=2 to x-1 if mod(I,j)=0
exit if x%i=0 endif
flag=.f.
endfor exit
if i=j
endif n=n+1
endif next endfor
if flag=.t.
?n n=n+1 endif next ?n
[3]编写程序,求共有几组I、j、k符合算式ijk+kji=2333,其中I、j、k是0~9之间的一位整数。clear n=0
for i=0 to 9 for j=0 to 9 for k=0 to 9
if (i*100+j*10+k)+(k*100+j*10+i)=2333 n=n+1
30
endif next next next ?n
编写程序,统计1000~9999之间的所有满足以下条件的四位数的个数。该四位数是一个完全平方数,其第1位与第3位数字之和为10,第2位与第4位数字之积为12。 clear n=0
for i=1000 to 9999
for j=1 to int(sqrt(i)) a=int(i/1000) b=int(i/100)-a*10
c=int(i/10)-a*100-b*10 d=i
if i=j*j and a+c=10 and b*d=12 n=n+1 endif endfor endfor
?n
31
相关推荐: