- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例 语法练习 嵌套循环:图示 三种循环语句可以互相嵌套,也叫多重循环。 嵌套循环的一个常见用途:组合 应用举例 1、枚举法 2、递推法(迭代法) 3、与数论有关的问题 4、数列问题 5、数字或图形排列问题 6、数值计算问题 7、函数作图问题 8、排序问题 1、枚举法 例1 找出100~999之间的所有“水仙花”数。 所谓“水仙花”数是指一个三位数,其各位数字的立方和等于该数本身,例如153=13+53+33,所以153是“水仙花”数。 设100=n=999,i、j、k分别代表百位、十位、个位上的数字,则:i=n/100,j=n/10%10,k=n%10 如果i3+j3+k3==n,则n就是所要求得的“水仙花”数 例2 百元买百鸡问题 假定小鸡每只0.5元,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,问共有几种购鸡方案? 根据题目,设母鸡、公鸡、小鸡各为x, y, z只,列出方程为: 例3 求满足1/a2+/b2=1/c2的共有多少组? 已知正整数abc,且a+b+c100。 2、递推法(迭代法) 例1 用递推法求Fibonacci数列的前20项,并以每行5个输出。 Fibonacci数列:1,1,2,3,5,8,13,21,34,……。递推公式:Fn=1(n=1,n=2), Fn=Fn-1+Fn-2 (n2) 例2 猴子吃桃问题 小猴在一天内摘了若干个桃子,当天吃掉一半多一个;第二天吃掉剩下的一半桃子多一个;以后每天都吃尚存桃子的一半零一个。直到第7天早上要吃时,只剩下一个了,问小猴共摘了多少个桃子? 问题分析:先从最后一天推出倒数第二天的桃子,再从倒数第二天推出倒数第三天的桃子,……。 3、与数论有关的问题 例1 判断整除性 输出所有被3整除、并能被5整除余3、被7整除缺1的两位数。 例2 求两个整数的最大公约数 已知两个正整数a和b,求这两个数的最大公约数GCD(a, b)。 算法分析:取min=(a, b),枚举1到min的所有整数,在能同时整除a和b的数中取最大的。 例3 输入两个正整数m和n,求其最小公倍数。 LCM:Least Common Multiple 例4 求任一正整数各位数字之和。 例5 将十进制正整数转换为任意进制。 例6 输入一个整数并判断是否为素数。 若整数n不能被2—n-1之间的任何一个整数整除,则n为素数。 算法1:设k=n-1,用2至n-1依次去除n,若n能被2—k之中任何一个整数i整除,则不必除下去,肯定不是素数,跳出循环,(i=k)。若所有数都不能被除尽,则循环自然完成。此时i=k+1。在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2—k之间任一整数整除过,因此输出“是素数”。 算法2:可以用 依次试除n,如果n能被 之中任何一个整数整除,则n不是素数,否则n是素数。 4、数列问题 例1 利用 /4≈1-1/3+1/5-1/7+…,计算 的近似值。 直到某项的绝对值小于10-6。 例2 求分数序列 前10项之和。 本例每一个分数是裴波那契(Fibonacci)数列1,1,2,3,5,8,13,21,…从第三项起前后两项的商。也就是说,该分数序列从第二项起,每一项的分子是前一项的分母,每一项的分母是前一项的分子与分母之和。这是累加问题,共累加10次。 例3 求级数1+2*3+4*5*6+7*8*9*10+… 前5项之和。 本例求级数前5项之和,要累加5次;每一项都是累乘,第i项是i个连续整数的积;第i项的第一个因子比前一项的最后一个因子大1。 利用双重循环完成题目要求,外循环实现累加,内循环实现累乘并修正因子值。 5、数字或图形排列问题 例1 打印如图所示的图形 例2 输出乘法九九表 思路:行号为i,列号为j,(1=i=9), (1=j=i) 第 i 行中一共要输出 i 个乘积 用for语句实现打印乘法九九表。 6、数值计算问题 例1 计算正弦曲线y=sin(x)在[0,π]上与x轴所围成的平面图形面积。 计算公式为 其中,xi=a+ih, h=(b-a)/n, 本例取n=100。 用梯形法计算sin(x)的定积分,积分下限a=0,积分上限b= π。积分区间被分成n段,每段宽度为h=π/100。根据定积分计算公式,多项式共有n项,其中第0项是h/2*[f(a)+f(b)],第i项是h*sin(a+i*h),只要将这n项累加起来即可。 例2 用迭代法求a的算术平方根。 公式 :xn=1/2*(xn-1+a/xn-1) ,设定初值 x0 =a/2,迭代
文档评论(0)