多重循环程序设计_第1页
多重循环程序设计_第2页
多重循环程序设计_第3页
多重循环程序设计_第4页
多重循环程序设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多重循环程序设计第一页,共十八页,编辑于2023年,星期日二、多重循环示例程序例1、求S=12!+13!+14!S=0Fori=12to14T=1Forj=1toiT=t*jEndfS=s+tEndf?s第二页,共十八页,编辑于2023年,星期日例2:求[10,100]内的素数的个数。方法一: settalkoffclearn=0forx=10to100 fori=2tox-1 ifmod(x,i)=0 exit endif ifi=x-1 n=n+1 endif nextnext?"n=",nsettalkonreturnreturn思考:有没有办法减少循环次数?第三页,共十八页,编辑于2023年,星期日n=0forx=10to100 fori=2toint(sqrt(x)) ifmod(x,i)=0 exit endif ifi=int(sqrt(x)) n=n+1 endif nextnext?"n=",n思考:将ifi=int(sqrt(x))移出循环要怎样修改程序?第四页,共十八页,编辑于2023年,星期日n=0forx=10to100 fori=2toint(sqrt(x)) ifmod(x,i)=0 exit endif next ifi>int(sqrt(x)) n=n+1 endifnext?"n=",n第五页,共十八页,编辑于2023年,星期日方法二:n=0forx=10to100 flag=.t. fori=2toint(sqrt(x)) ifmod(x,i)=0 flag=.f. exit endif next ifflag=.t. n=n+1 endifnext?"n=",n第六页,共十八页,编辑于2023年,星期日例3求1-1/2+1/3-1/4+...+1/49-1/50之和。settalkoffs=0p=-1n=1dowhilen<=50 p=-p s=s+1/n*p n=n+1enddo?"s=",ssettalkon 第七页,共十八页,编辑于2023年,星期日例4.一个数如果刚好与它所有的因子之和相等,则称该数为一个“完数”,如:6=1+2+3,则6就是一个完数。求出1000以内的完数之和,完数的个数。CLEARS=0 &&S中存放完数之和N=0 &&N中存放完数的个数FORI=1TO1000S1=0 &&S1中存放I的因子之和

FORK=1TOI/2IFI%K=0 &&判断K是否为I的因子

S1=S1+KENDIFNEXTIFS1=IS=S+IN=N+1ENDIFNEXT?S,NRETURN第八页,共十八页,编辑于2023年,星期日例5:求所有的水仙花数。(水仙花数:3位的正整数,它各位数字的立方和与该数值相等。)方法一:settalkoffclearforn=100to999 c=n%10 b=int(n/10)%10 a=int(n/100) ifn=a^3+b^3+c^3 ?n endifnextsettalkonreturn第九页,共十八页,编辑于2023年,星期日方法二:settalkoffclearfora=1to9 forb=0to9 forc=0to9 n=a*100+b*10+c ifn=a^3+b^3+c^3 ?n endif next nextnextsettalkonreturn第十页,共十八页,编辑于2023年,星期日例6编程求[6,1400]内能被7整除,且至少有一位数字为7的整数,最大一个是多大?(思考:求第5大的)CLEARN=0&&个数M=0&&最大者之初值假定为0FORK=6TO1400IFMOD(K,7)=0AND“7”$STR(K)N=N+1M=KENDIFENDFOR?“MAX=”,M第十一页,共十八页,编辑于2023年,星期日例7.求所有符合算式ij*ji=1300的最大的和最小的数ij(即i*10+j),共有多少组这样的i,j。其中i、j是1~9之间的一位整数。CLEARMIN=0N=0FORI=1TO9FORJ=1TO9IF(I*10+J)*(J*10+I)=1300IFMIN=0MIN=I*10+J&&第一次求出来的满足条件的ij最小

ENDIFMAX=I*10+J&&最后一次求出来的满足条件的ij最大

N=N+1ENDIFNEXTNEXT?MIN,MAX,N第十二页,共十八页,编辑于2023年,星期日例8.若有三个正整数a、b、c满足a^2+b^2=c^2,则a,b,c称为勾股数组,编一程序,问有多少个三个数均小于100的勾股数组(注意:a,b,c不能为0)。CLEARN=0FORC=1TO99FORA=1TOCFORB=1TOCIFA^2+B^2=C^2N=N+1ENDIFNEXTNEXTNEXT?N第十三页,共十八页,编辑于2023年,星期日例9.百钱百鸡问题。用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。N=0FORX=1TO20FORY=1TO33Z=100-X-YIF5*X+3*Y+Z/3=100N=N+1ENDIFNEXTNEXT?N第十四页,共十八页,编辑于2023年,星期日例10已知斐波那契数:1,1,2,3,5,8,13,21,34,....,即从第三项开始,每一项是其前面最邻近两项之和。编程求此数列的第40项数是多少。方法一:SETTALKOFF&&此处采用的是递推法STORE1TOF1,F2,IDOWHILEI<=19F1=F1+F2F2=F1+F2I=I+1ENDDO&&每次循环产生二项?F2SETTALKONRETURN第十五页,共十八页,编辑于2023年,星期日方法二:SETTALKOFFDIMENSIONA(35)STORE1TOA(1),A(2)I=3T=2DOWHILEI<=40A(I)=A(I-1)+A(I-2)T=T+A(I)I=I+1ENDDO?TSETTALKONRETURN第十六页,共十八页,编辑于2023年,星期日练习1、编程计算2!+4!+6!+8!+10!。

2、在[10000,20000]范围内考察个位数字是3的素数,问:这样的素数有多少个?其中最大的一个等于几?

3、所谓回文数是从左至右与从右至左读起来都是一样的数字,如:121是一个回文数。编写程序,求出100—900之间的所有能被3整除的回文数的个数和它们的和。

第十七页,共十八页,编辑于2023年,星期日4、求s=1*2+2*3+3*4+...+n*(n+1),当s>10000时退出,求退出时n值。5、求在1,2,3,4,...,10这10个数中,任意选两个不同的数,求它们的和能被2整除的数的总对数.(注意:象3+5和5+3认为是同一对数)

6、用一元纸币兑换一分、两分和五分的硬币,要求兑换硬币的总数为50枚,问共有多少种换法?(注:在兑换中一分、两分或五分的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论