c语言猴子吃桃子问题怎么做?

Python014

c语言猴子吃桃子问题怎么做?,第1张

1、打开visual C++ 6.0-文件-新建-文件-C++ Source File

2、题目:猴子吃桃:猴子第1天摘下若干个桃子,当即吃掉一半多1个桃子,第2天早上又将剩下的桃子吃掉一半多1个,以后每天都吃掉前天一半多1个,到第10天早上只剩下一个桃子,求第1天猴子到底摘子多少个桃子?

3、输入预处理命令和主函数:

#include<stdio.h>         /*输入输出头文件*/

void main()           /*空类型:主函数*/

4、定义变量、确定天数和每天桃子的数量

int a,b=1           /*定义变量的数据类型为整型*/

for(a=1a<=9a++)          /*确定天数*/

b=(b+1)*2          /*计算从第10天到第1天每天桃子的数量*/

5、输出第1天桃子的数量:

printf("第一天摘了%d个桃子\n",b)         /*输出第1天桃子的数量*/

6、完整的源代码:

/*                猴子吃桃

猴子第1天摘下若干个桃子,当即吃掉一半多1个桃子,第2天早上又将剩下的桃子吃掉一半多1个,以后每天都吃掉前天一半多1个,到第10天早上只剩下一个桃子,求第1天猴子到底摘子多少个桃子?*/

#include<stdio.h>          /*输入输出头文件*/

void main()            /*空类型:主函数*/

{

int a,b=1           /*定义变量的数据类型为整型*/

for(a=1a<=9a++)          /*确定天数*/

b=(b+1)*2          /*计算从第10天到第1天每天桃子的数量*/

printf("第一天摘了%d个桃子\n",b)         /*输出第1天桃子的数量*/

}

#include <stdio.h>

int main(void)

{

int i, peach

peach=1

scanf("%d",&i)

while(i>1)

{

i--

peach=(peach+1)*2

}

printf("%d\n", peach)

}

程序如上,

你可以输入第i天发现桃子数为1.

例如:你输入

10

结果是

1534

你说的

1023

肯定是不对的,因为它都是一半后多吃1个,应该是偶数。

上面的程序,正是你题目的逆向死维,没有用递归。

#include

<iostream.h>

void

main()

{

int

day,n1,n2

day=9

n2=1

//n2表示剩下的桃子

while(day>0)

{

n1=(n2+1)*2

n2=n1

day--

}

printf(“%d\n”,n2)

}

第二种方法

#include

<stdio.h>

void

main()

{

int

day,sum=1

for(day=1day<=9day++)

//剩一个桃子是从第九天剩下的,所以要算九次

sum=(sum+1)*2

printf("%d\n",sum)

}

第三种:

#include<stdio.h>

main()

{

int

day=9,n=1

while(day-->0)

n=(++n)*2

/*第1天的桃子数是第2天桃子数加1后的2倍*/

printf("%d",n)

}

第四中方法:

#include

"stdio.h"

main()

{

int

day,m,n

for(n=2n++)

{

m=n

for(day=1day<10day++)

m=m/2-1

/*m为吃剩下的桃*/

if(m==1)

/*第十天,剩下一个*/

break

}

printf("第一天摘下的桃子数:%d\n",n)

/*n为符合条件的*/

}