程序的控制结构循环结构.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序的控制结构循环结构

do-while语句——例4.11 校体操队到操场集合,排成每行2人,最后多出1人;排成每行3人,也多出1人;分别按每行排4,5,6人,都多出1人;当排成每行7人时,正好不多。求校体操队至少多少人? 【分析】 ①设校体操队为x人,根据题意x应是7的倍数,因此x的初值为7,以后用x+=7改变x值; ②设置一个逻辑变量yes,必须所有条件都满足yes的值才为真(true),如果诸条件中有一个不满足, 则yes值就为假(false),; ③使用yse来控制循环,当yes为真(true) 时循环结束,否则循环改变x值。 do-while语句——例4.11 #includeiostream using namespace std; int main() { bool yes; int x=0; do { yes=true; x+=7; if (x%2!=1) yes=false; if (x%3!=1) yes=false; if (x%4!=1) yes=false; if (x%5!=1) yes=false; if (x%6!=1) yes=false; } while (yes==false); coutAll=x; return 0; } 若不使用yes变量: #includeiostream using namespace std; int main() { int x=0; do { x+=7; } while ((x%2!=1)||(x%3!=1)|| (x%4!=1)||(x%5!=1)|| (x%6!=1)); coutAll=x; return 0; } 上机练习 1、球弹跳高度的计算:一球从某一高度h落下(单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高? 2、角谷猜想:对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,将经过处理得到1的过程输出来。 3、级数求和:已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。现给出一个整数K(1=k=15),要求计算出一个最小的n,使得Sn>K。 4、分离整数的各个数:给定一个整数n(1=n=100000000),要求从个位开始分离出它的每一位数字。从个位开始按照从低位到高位的顺序依次输出每一位数字。 5、数字反转:给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零,例如输入-380,反转后得到的新数为-83。 6、含k个3的数:输入两个正整数m和k,其中1m100000,1k5 ,判断m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。 例如,输入:43833 3,满足条件,输出YES。如果输入:39331 3,尽管有3个3,但不能被19整除,也不满足条件,应输出NO。 循环嵌套 循环嵌套——例4.12 求 S=1!+2!+3!+....+10! 分析: 这个问题是求10以内自然数的阶乘之和,可以用for循环来实现: for(i=1;i=10;++i) { (1)i阶乘的值存到t; //t=i! (2)累加t到s中; //s+=t } 显然根据以上结构,通过10次的循环可以求出1!,2!,…10!,并不断累加起来,求出s。而求t=i!,又可以用一个for循环来实现: t=1; for (j=1;j=i;++j) t*=j; 循环嵌套——例4.12 #include iostream using namespace std; int main () { int t,s; s=0; for(int i=1;i=10;++i) { t=1; for (int j=1;j=i;++j) //求i! t*=j; s+=t; //累加i! } couts; return 0; } 循环嵌套——例4.12 实际上对于求i!,我们可以根据求出的(i-1)!乘上i即可得到,而无需重新从1再累乘到i #include iostream using namespace std; int main () { int t=1,s=0; for(int i=1;i=10;++i) { t*=i; //t为上一个数的i-1的阶乘值,再乘以i即为

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档