- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第3章_程序设计初步
分析:用级数表示π/4,如下公式, 只要用while循环把级数中的每一项 加起来, 直到该项的绝对值 小于10-7为止。 要用变量(比如t)来存储 这一项的值,while的条件就是判断t10-7。 3.14 编写循环结构的程序 例3.12 用下面公式求π的近似值。π/4≈1-1/3+1/5-1/7+…直到最后一项的绝对值小于10-7为止。 #include iostream #include iomanip #include cmath using namespace std; int main( ) { int s=1; double n=1,t=1,pi=0; while( (fabs(t))1e-7 ) { pi=pi+t; n=n+2; s=-s; t=s/n; } pi=pi*4; cout pi= setiosflags(ios∷fixed)setprecision(6)piendl; return 0; } 注意: 不要把n定义为整型变量,否则在执行“t=s/n;”时,得到t的值为0(原因是两个整数相除)。 运行情况如下: pi=3.141592 P86习题22 猴子吃桃问题 问题描述:猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半另加一个。到第10天早上想再吃时,就只剩下一个桃子了。求第1天共摘了多少个桃子。 分析:假设Ai为第i天吃完后剩下的桃子的个数,则有: A0=2(A1+1) A1:第1天后剩下的桃子数 A1=2(A2+1) A2:第1天后剩下的桃子数 …… A8=2(A9+1) A9:第1天后剩下的桃子数 A9=1 A0表示第一天共摘下的桃子。 要求A0。 问题九:需要定义对应从A0到A9的十个变量吗? Answer : 不需要,只需要定义x1,x2表示前后两天,然后用循环来实现,实现从第9天递推到第1天。 #include iostream using namespace std; int main() { int day,x1,x2; day=9; x2=1; while(day0) { x1=(x2+1)*2; // 第1天的桃子数是第2天桃子数加1后的2倍 x2=x1; day--; } cout total= x1 endl; return 0; } 运行结果如下: total=1534 例3.13 求Fibonacci数列前40个数。这个数列有如下特点:第1、2个数为1、1。从第3个数开始,每个数是其前面两个数之和。 即 F1=1 (n=1) F2=1 (n=2) Fn=Fn-1+Fn-2 (n≥3) 这是一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问每个月的兔子总数为多少? 可以从书中表3.4看出兔子数的规律。 分析: 循环次数是已知的(40个数),用for循环来实现。 方法一:每次递推1个数 #include iostream #include iomanip using namespace std; int main( ) { //f1,f2分别代表Fibonacci数列中前后两个数 long f1,f2; long t; //临时变量 int i; //循环变量 f1=f2=1; cout setw(12)f1 endl; cout setw(12)f2endl; for( i=3; i=40; i++ ) { t=f2; //先把f2保存起来 f2=f1+f2; //f2是新的一项 f1=t; //此时的f1是上一次的f2 coutsetw(12)f2 endl; } return 0; } 1 1 2 3 5 8 13 21 34 … f1 f2 f1 f2 f1 f2 #include iostream #include iomanip using namespace std; int main( ) { long f1,f2; int i; f1=f2=1; for( i=1; i=20; i++ ) { //设备输出字段宽度为12,每次输出两个数 coutsetw(12)f1setw(12)f2; //每输出完4个数后换行,使每行输出4个数 if(i%2==0) coutend
您可能关注的文档
最近下载
- 建筑工程水泥—水玻璃双液注浆技术规程.pdf VIP
- 中小学校园膳食监督家长委员会工作制度.docx
- 22G101-1混凝土结构施工图平面整体表示方法制图规则和构造详图(现浇混凝土框架、剪力墙、梁、板)(OCR).pdf VIP
- 敬辞与谦辞公开课教案教学设计课件资料.pptx VIP
- 西气东输三线闽粤支干线工程环境影响报告书.pdf
- 酒店安保部门安全培训资料.pdf VIP
- 7.1中国四大菜系+(课件)-《导游基础知识》同步教学(中国旅游出版社).pptx VIP
- JJF(浙)1222-2025汽油车简易瞬态工况排放检测系统校准规范.pdf VIP
- 2025兵团连队职工考试试题及答案解析.doc VIP
- 南京最全的美食地图.pdf VIP
文档评论(0)