《FOR循环的嵌套例题.docx》由会员分享,可在线阅读,更多相关《FOR循环的嵌套例题.docx(6页珍藏版)》请在三一办公上搜索。
1、FOR循环的嵌套例题1、把一张一元钞票,换成一分、二分和五分硬币,每种至少5枚,问有多少种方案?205 set talk off clea s=0 for i=5 to 100 for j=5 to 50 for k=5 to 20 if k*5+j*2+i=100 ?i,j,k s=s+1 endif endfor endfor endfor ?s set talk on 2、显示99乘法表! set talk off clear for m=1 to 9 for n=1 to m s=m*n ?str(m,1)+*+str(n,1)+=+str(s,2)+ endfor ? endfor
2、set talk on clear ? 九 九 乘 法 表 ? for a=1 to 9 for b=1 to 9 p=a*b ?str(b,1)+*+str(a,1)+=+str(p,2)+ endfor ? endfor ? 九 九 乘 法 表 ? for a=1 to 9 for b=1 to 9 p=a*b if a=b ?str(b,1)+*+str(a,1)+=+str(p,2)+ endif endfor ? endfor 3、百马驮百瓦问题:大马、小马和马驹共100匹,共要驮100瓦,大马一驮三,小马一驮二,马驹二驮一,三种马都驮,共有多少种组合? set talk off c
3、lear n=0 for x=1 to 33 for y=1 to 50 for z=1 to 100 if 3*x+y*2+z*1/2=100 and x+y+z=100 n=n+1 ?x,y,z endif endfor endfor endfor ?n set talk on 4、求解世界上的有名的“百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡邹三,值钱一。百钱买百鸡,问鸡翁、鸡母和鸡邹各几何?写出当鸡翁为8时,鸡母有几只? clear n=0 for i=1 to 19 for j=1 to 32 for k=1 to 99 if i*5+j*3+k/3=100 and i+j+k=
4、100 n=n+1 ?i,j,k if i=8 a=i b=j c=k endif endif endfor endfor endfor ?n ?a,b,c n=0 for i=1 to 19 for j=1 to 32 for k=1 to 99 if i*5+j*3+k/3=100 and i+j+k=100 n=n+1 ?i,j,k endif endfor endfor endfor ?n 5、 求100,999之间所有水仙花数。所谓“水仙花数”是指一个三位数,其各位数字的三次方之和等于该数本身,例如:153=13+33+53,故153是水仙花数。 set talk off clear
5、 for i=100 to 999 a=i%10 b=int(i%100/10) c=int(i/100) if a3+b3+c3=i ?i endif endfor set talk on 6、从键盘任意输入一个数据,求出1到这个数内的所有整数的阶乘和。 方法一: set talk off clear input please input a number: to i s=0 for n=1 to i t=1 for m=1 to n t=t*m endfor s=s+t endfor ?s set talk on 或方法二: set talk off clear input please
6、input a number: to i s=0 t=1 for n=1 to i t=t*n s=s+t endfor ?s set talk on 7、编写程序输出下面的图形。 * * * * SET TALK OFF CLEAR FOR I= 4 TO 1 STEP -1 ?SPAC(8-2*I) FOR J=2*I-1 TO 1 STEP -1 ?* ENDFOR ? ENDFOR SET TALK ON RETURN 8、求出10,1000内所有能被6和9中的一个且只有一个数整除的整数的个数。 set talk off clear n=0 for x=10 to 1000 if mo
7、d(x,6)=0 and mod(x,9)!=0 or mod(x,6)!=0 and mod(x,9)=0 n=n+1 endif endfor ? n set talk on return 9、求出满足下列条件的三位数:(1)此三位数的三位数字各不相同;(2)此三位数等于它的各位数字三方和。并统计这种三位数的个数。 set talk off clear n=0 for i =100 to 999 a=i%10 b=int(i%100/10) c=int(i/100) if a3+b3+c3 =i and ab and bc and ac ?i n=n+1 endif endfor ?n s
8、et talk on 10、设某四位数的各位数字的立方和等于100,试求出这样的四位数并统计个数 set talk off clear n=0 for i=1000 to 9999 a=int(i/1000) b=int(i%1000/100) c=int(i%100/10) d=i%10 if a3+b3+c3+d3=100 ?i n=n+1 endif endfor ?n set talk on 11、设某四位数的千位数字的平方与十位数字的平方之和等于百位数字的立方与个位数字的立方之和,*求出这样的四位数并统计个数。 set talk off clear n=0 for i =1000 t
9、o 9999 a=int(i/1000) b=int(i%1000/100) c=int(i%100/10) d=i%10 if a2+c2=b3+d3 ?i n=n+1 endif endfor ?n set talk on 12、猴吃桃:有一天小猴子摘下了若干个桃子,当即吃掉一半,还觉得不过瘾,又多 吃了一个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后 每天都是吃尚存桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩 下一个桃子了。问小猴子第一天共摘下了多少 SET TALK OFF CLEAR p=1 for i=2 to 10 p=(p+1)*2 ?i,p
10、 endfor ?p set talk on 13、一球从50米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一高度的4/5倍,试求出最小的自然数N,使得此球从开始下落至第N次着地时在垂直方向所经过的总路程超过400米。 set talk off clear h=50 s=50 n=1 do while s1 ?STR(X)+是素数 ELSE ?STR(X)+不是素数 ENDIF set talk on 15、*回文数指的是正读和反读都是一样的一串字符,如121,1221。试求出1000,3000以内的回文数并统计它的个数。 set talk off clear n=0 for i=1000 to 3000 a=int(i/1000) b=int(i%1000/100) c=int(i%100/10) d=i%10 if 1000*d+100*c+10*b+a=i n=n+1 ?i endif endfor ?n set talk on