按你的提问,每天都吃一半多两个,第6天剩一个。程序按图片中的程序照猫画虎即可。计算结果,第一天摘了156个桃子,而不是100个。
#include
int main()
{
int day,x1,x2;
day=5;
x2=1;
while(day>0)
{x1=(x2+2)*2;
x2=x1;
day--;
}
printf("total=%d\n",x1);
return 0;
}
用数学方法按天推算了一下,是156个,无误。
#include "stdio.h"
int main(int argc,char *argv[]){
printf("The monkey picked %d peaches on the first day.\n",(((((1+1)*2+1)*2+1)*2+2)*2+2)*2);
return 0;
}
运行结果:
若想多写点代码,那就如下写——
int main(int argc,char *argv[]){
int s,i,t;
for(s=t=1,i=0;i<5;i++){
(s+=t)+=s;
if(i==2)
t=2;
}
printf("The monkey picked %d peaches on the first day.\n",s);
return 0;
}
#include
int main()
{ int x=1,n;
for(n=9; n>0; n--)
x=(x+1)*2;
printf("%d\n",x);
return 0;
}
逆运算:第六天的时候剩一个,那么可以得到,第五天就是(1+1)*2=4;第四天就是:(4+1)*2=10个,第3天 (10+1)*2=22;第二天;(22+2)*2=48;第一天,(48+2)*2=100个;
int x=1,i;
for(i=1;i<=6;i++)//如果是10天剩一个的话,就把6改成10;
{
if(i<=2){计算1,2天的,
x=(x+2)*2;
}
else if(i>2){//计算后面四天的
x=(x+1)*2;
}
}
printf("第一天一共栽了%d个",x);
#include
int all(int n,int left){
if(n==2) return 2*(left+2);
if(n==3) return all(n-1,2*(left+2));
return all(n-1,2*(left+1));
}//参数表示第n天还剩left个桃子
int main(){
printf("%d",all(6,1));
}