C语言递推流程图,有一堆不知数量的桃子,猴子第一天吃掉一半,觉得不过瘾,又多吃了一个;
有一堆不知数量的桃子,猴子第一天吃掉一半,觉得不过瘾,又多吃了一个;第二天造此办理,吃掉一半多一个,天天如此,到第10天早上,猴子发现只剩一个桃子了,问原来这堆桃子有多少...
有一堆不知数量的桃子,猴子第一天吃掉一半,觉得不过瘾,又多吃了一个;第二天造此办理,吃掉一半多一个,天天如此,到第10天早上,猴子发现只剩一个桃子了,问原来这堆桃子有多少?,,,,,求高手解答,求详细流程,和专业讲解
流程图或者NS流程图 展开
流程图或者NS流程图 展开
3个回答
展开全部
欲解答这个题,首先理顺思路。解答这个题,可以用倒推法,亦可用正推法,把数学问题解决了,在编程就不难了。
这个题,用倒推法比较简单;推理如下:
"到第10天早上,猴子发现只剩一个桃子了",说明第九天只有4个桃子(吃掉一半加1,也就是吃掉3个,到第十天就只剩下1个了嘛),所以第八天只有桃子(4+1)乘以2,也就是10个桃子(吃掉一半加1,也就是6个就只剩下4个)…… ……找到规律就可以计算了。
规律:吃掉了一半多一个,那么剩下的就是比一半少一个了。
1.第九天有桃子(1+1)×2=4 个
2.第八天:(4+1)×2=10
3.第七天:(10+1)×2=22
4.第六天:(22+1)×2=46
5.第五天:(46+1)×2=94
6.第四天:(94+1)×2=190
7.第三天:(190+1)×2=382
8.第二天:(382+1)×2=766
9.第一天:(766+1)×2=1534
附程序:
#include<stdio.h>
void main()
{
int i,sum=1;
for (i=1;i<=9;i++)
sum=(sum+1)*2;
printf("桃子总数为:%d\n",sum);
}
这个题,用倒推法比较简单;推理如下:
"到第10天早上,猴子发现只剩一个桃子了",说明第九天只有4个桃子(吃掉一半加1,也就是吃掉3个,到第十天就只剩下1个了嘛),所以第八天只有桃子(4+1)乘以2,也就是10个桃子(吃掉一半加1,也就是6个就只剩下4个)…… ……找到规律就可以计算了。
规律:吃掉了一半多一个,那么剩下的就是比一半少一个了。
1.第九天有桃子(1+1)×2=4 个
2.第八天:(4+1)×2=10
3.第七天:(10+1)×2=22
4.第六天:(22+1)×2=46
5.第五天:(46+1)×2=94
6.第四天:(94+1)×2=190
7.第三天:(190+1)×2=382
8.第二天:(382+1)×2=766
9.第一天:(766+1)×2=1534
附程序:
#include<stdio.h>
void main()
{
int i,sum=1;
for (i=1;i<=9;i++)
sum=(sum+1)*2;
printf("桃子总数为:%d\n",sum);
}
2011-11-13
展开全部
这个问题用倒推的方法。从最后剩余的1个开始
第十天:2^1-1=1
第九天:1*2+1=2^2-1
3*2+1=(1*2+1)*2+1=2^2+2+1=2^3-1=7
7*2+1=2^3+2^2+2+1=2^4-1
、、、
S(n)=2^n-1
、、、
当n=10时
S(总计)=2^10-1=1023
#include<stdio.h>
void main()
{
int i,sum=1;
for (i=1;i<=9;i++)
sum=sum*2+1;
printf("桃子总数为:%d\n",sum);
}
第十天:2^1-1=1
第九天:1*2+1=2^2-1
3*2+1=(1*2+1)*2+1=2^2+2+1=2^3-1=7
7*2+1=2^3+2^2+2+1=2^4-1
、、、
S(n)=2^n-1
、、、
当n=10时
S(总计)=2^10-1=1023
#include<stdio.h>
void main()
{
int i,sum=1;
for (i=1;i<=9;i++)
sum=sum*2+1;
printf("桃子总数为:%d\n",sum);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上正解,已经没有什么可说的了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询