网站大量收购独家精品文档,联系QQ:2885784924

(C++语言程序的设计)第10讲 习题课.ppt

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

HZAU 理学院计算机系 姚娟 HZAU 理学院计算机系 姚娟 * HZAU信息学院计算机系 * C++语言程序设计 第10讲 习题课 * 一、枚举法(穷举法) “笨人之法”——把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出。 * 例10-1、百元买百鸡:用一百元钱买一百只鸡。已知公鸡5元/只,母鸡3元/只,小鸡1元/3只。 分析:这是个不定方程——三元一次方程组问题(三个变量,两个方程) x+y+z=100 5x+3y+z/3=100 设公鸡为x只,母鸡为y只,小鸡为z只。 则0≤ x≤ 100、 0≤ y≤ 100、 0≤ z≤ 100 * #includeiostream using namespace std; int main() { int x,y,z; cout\t公鸡\t母鸡\t小鸡endl; for (x=0;x=100;x++) for (y=0;y=100;y++) for (z=0;z=100;z++) if (x+y+z==100 5*x+3*y+z/3.0==100 ) cout\tx\ty\tzendl; return 0; } * 【讨论】此为“最笨”之法——要进行101×101×101= 1030301次(100多万次)运算。 ?如何改进 要点: 确定独立变量个数及取值范围——每个独立变量用一层循环实现“穷举”; 确定符合题意的条件表达式——条件成立的方案,输出结果。 * 例10-2、张三、李四、王五三个棋迷,定期去文化宫下棋。张三每五天来一次,李四每六天来一次,王五每九天来一次。问每过多少天他们才能一起在文化宫下棋? 分析:此问题实际上是求最小公倍数的数学问题。设结果为x ,其取值范围为1→∞。因上限为无限大,计数值不能预先确定,故用while循环结构更合适。 * #includeiostream using namespace std; int main() { int x=1; while (1) { if (x%5==0 x%6==0 x%9==0) { cout每过x天他们才能一起在文化宫下棋endl; break; } x++; } return 0;} * 练习2、输入3个自然数a、b、c,求这三个数的最大公约数。 分析:设结果为x ,其取值范围为1→min(a,b,c)。从上限开始到1,递减寻找符合条件的x,找到的第一个x即为最大公约数。 * 二、归纳法(递推法) “智人之法”——通过分析归纳,找出从变量旧值出发求新值的规律。 * 例10-3、编程显示以下图形(共n行,n由键盘输入)。 * * * * * * * * * * * * * * * * 此类题目分析的要点是:通过分析,找出每行空格、* 与行号i、列号j及总行数n的关系。 由此归纳出:第i行的空格数n-i个;第i行的“*”数是2i-1个。 * #includeiostream using namespace std; int main() { int n,i,j; coutn=?endl; cinn; for(i=1;i=n;i++) { for(j=1;j=n-i;j++) cout ; for(j=1;j=2*i-1;j++) cout*; coutendl; } return 0;} * 练习3、编程显示以下图形(共n行,n为奇数,由键盘输入)。 * * * * * * * * * * * * * * 例10-4、求n!(n由键盘输入) int main() { int i,s,n; cout请输入自然数n的值:; cinn; s=1; for (i=1; i=n;i++) s=s*i; coutn!=sendl; return 0; } N = 17? ?自学 P85 * 练习4、求∑n!(n由键盘输入) 要求: 用双重循环实现求和(外循环作累加,内循环求阶乘) 通过单循环实现 * 三、数组的常见程序 HZAU 理学院计算机系 姚娟 HZAU 理学院计算机系 姚娟

文档评论(0)

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

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

1亿VIP精品文档

相关文档