问一道C语言编程的问题,看下图

2024-11-25 06:08:47
推荐回答(5个)
回答1:

按你的提问,每天都吃一半多两个,第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个,无误。

回答2:

#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;
}

回答3:

#include
int main()
{ int x=1,n;
  for(n=9; n>0; n--)
    x=(x+1)*2;
  printf("%d\n",x);
  return 0;
}

回答4:

逆运算:第六天的时候剩一个,那么可以得到,第五天就是(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);

回答5:

#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));
}