61-C语言-小猴吃桃问题
问题:猴桑第一天兴高采烈地采了好多桃子,并且吃了一半,太好吃了!,然后又多吃了一个,第二天又吃了一半多一个,以此类推,到第十天的时候,再想吃的时候就剩下1个桃子了。那么请问:第一天猴桑摘了多少桃子?
思路:
- 跟做数学题一样,先提取有用条件。
- (1)到第十天的时候,没有吃,就剩一个了,说明猴桑吃了9天——因此循环的时候,循环9天;
- (2)每次怎么吃的呢?每次总数的一半+1,最后设当前剩余量为1(因为题干中说了剩一个),从最后一层剩余1,倒推上一层的数量,从而得到关系式,设上一层为n,则n-(n/2+1)=n1,但由于不清楚n的具体值,因此需要给这个公式变换成关于n1的,即n=2*(n1+2);(整体乘2,去分母,化简即可),这样就得到了关系式
- (3)因为想要从下往上推,因此,关系式之后,给n1赋上新值,n1=n;
代码如下:
#include int main()
{int n1=1;int n;int i;for(i=0;i<9;i++){n=2*(1+n1);n1=n;}printf("总共有%d个桃子\n",n); printf("第一天吃了%d个桃子",n/2+1);return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
