C语言从入门到精通 试读

2.猴子吃桃问题
【例6_26】猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上,又将剩下的桃子吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时,只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子。
【分析】这个问题应该倒过来考虑,也就是从第10天早上开始考虑。因为每天早上吃了前一天的一半零一个,那么第9天早上的桃子个数应该是先将第10天的桃子个数加1,然后乘以2即(1+1)*2,第8天早上的桃子应该是((1+1)*2+1)*2,以此类推,推算到第一天就得到了摘到的桃子总个数。整个计算过程如图6.60所示。
图6.60猴子摘桃问题推算过程示意图
根据以上推算过程,相应的程序代码如下:
01 #include<stdio.h>
02 void main()
03 {
04 int day,x,x1;
05 x1=1; /*第10天的桃子个数为1*/
06 day=10; /*表示从第10天开始*/
07 while(day>1) /*当day大于1*/
08 {
09 x=(x1+1)*2; /*由当天的桃子个数得到前一天的桃子个数*/
10 x1=x; /*将x1赋值给x*/
11 day--; /*天数减1*/
12 }
13 printf("猴子摘到的桃子个数为%d/n",x); /*输出猴子摘到的桃子总数*/
14 }
程序运行结果如图6.61所示。
图6.61程序运行结果示意图
q 第9~10行是求猴子摘到的桃子个数的关键代码,它是一个迭代的过程。先由x1得到x的值,然后将x赋值给x1。继续由x1求x,经过这样的不断迭代,就得到了摘到的桃子总数。
3.求方程的根问题
【例6_27】使用二分法求方程2x3-3x2+4x-12=0在区间(-10,10)的根。
【分析】假设函数f(x)=2x3-3x2+4x-12,二分法就是先给定一个区间(x1,x2),且有f(x1)*f(x2)<0。通过不断地将区间缩小,当这个区间非常小无限接近零点时,此时x1或x2的取值就是方程f(x)=0的根。所谓零点,也就是说当x=c时,有f(c)=0,则称c就是f(x)的零点,即x=c为方程的根。
函数f(x)=2x3-3x2+4x-12的图像如图6.62所示。
图6.62函数y=2x3-3x2+4x-12的图形
使用二分法求方程2x3-3x2+4x-12=0的根的具体过程如下:
(1)给定x1和x2,使f(x1)*f(x2)<0,这样可以保证在区间(x1,x2)有根存在。相应的代码如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值