C++_基本流程控制结构.ppt

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

最大公约数与最小公倍数 求两自然数m , n的最大公约数 欧几里德算法(mn) 1、m被n除得到余数r(0≤r ≤n) r=m%n m=6 n=4 r=m%n=6%4=2 while ( r=m%n ) { m=n; n=r ; } 最小公倍数为两数之积除以最大公约数。4*6/2=12 2、若r=0,则算法结束,n为最大公约数,否则做3 3、m?n , n?r , 回到1 m=4 n=2 r=m%n=4%2=0 所以,公约数=2 3.5 综合应用举例 最大公约数:能同时被m和n整除的最大数。 r=mn?n:m for(i=1; ir; i++) if(m%i==0n%i==0) a=i; couta; 例6 求级数公式: 首先写出通项,然后再用当前项(第n项)除前一项,得出后一项比前一项大多少倍。 通项: t=x*x/((2*n)*(2*n-1)) 第n项/第n-1项: 表明后一项比前一项大t倍,即前一项乘t等于后一项 后一项=(-1)×前一项×t S=0;term=1;n=1;//一定要赋初值 while(fabs(term)=1e-5) { S=S+term; term=(-1)*term*x*x/((2*n)*(2*n-1)); n++; } term=(-1)*term*t; 前一项 当前项 旧的 新的 后一项=(-1)×前一项×t 设通项为term,则可以写出迭代公式 t=x*x/((2*n)*(2*n-1)) 例7 鸡兔共有30只,脚共有90只,问鸡兔各有多少? void main(void) { int i; //i代表鸡,则兔为30-i只 for(i=0; i=15; i++) if(2*i + 4*(30-i)= =90) { cout“鸡”iendl; cout“兔”30-iendl; } } 一百万富翁 遇到一陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我两分钱,第三天我仍给你十万元,你给我四分钱,....,你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约。请编写程序计算陌生人给百万富翁多少钱,百万富翁给陌生人多少钱? 例8 计算:2+22+222+.....+2222222=? 累加和 s=0 设通项为t t的初值为2 22=2*10+2; 222=22*10+2; 2222=222*10+2; t=t*10+2; 所以,通项的循环表示为: 前一项 当前项 循环体为: { s = s +t t=t*10+2; } void main(void) { int t,s; s=0; t=2; for(int i=0;i7;i++) { s=s+t; t=t*10+2; } coutsendl; } 例9 满足以下条件三位数n,它除以11所得到的商等于n的各位数字的平方和,且其中至少有两位数字相同。 131 131/11=11 12+32+12=11 分析: 数字应该从100循环到999 将每位数字剥出,判断其是否满足条件 用a,b,c分别代表三位数,a,b,c分别从0循环到9,组成所有可能的三位数,然后找出满足条件的数来。 下面程序的功能是用公式求π的近似值,直到最后一项的值小于10-6为止。请填空。 void main(void ) { int i=1; ______ pi=0; while (i*i=10e+6) { pi=______________ ; i++; } pi=sqrt (6.0 *pi) ; cout“ pi=”piendl; } double pi+1.0/(i*i) 有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?请填空。 #include”stdio.h” void main(void ) { int day, x1, x2; day=0; x1=1020; while (________ ) { x2=__________; x1=x2; day++; } cout“day=”daye

文档评论(0)

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

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

1亿VIP精品文档

相关文档