第1个回答 推荐于2018-02-28
分析:
① 从最后一天的x=1个,倒推出前一天的个数x,表达式可写为x=2(x+1)
② 将该表达式作为循环n次的循环体,并在该语句处设置断点,进行观察即可。
最简单的源程序如下:
#include<stdio.h>
void main()
{
int i,x;int day,int n;
printf("请输入天数:\n");
scanf("%d",&n);
for(i=0;;i+=2)
{
x=i;
for(day=1;day<=n;day++)
x=x/2-1;
if(x==1)
{
printf("第一天的桃子个数为%d\n",i);
break;
}
}
getch();
}本回答被网友采纳
第2个回答 2015-09-05
递推法:
#include <stdio.h>
void main()
{
int day,n;
for(day=10,n=1;day>0;day--){
printf("第%d天有%d个\n",day,n);
n=2*n+2;
}
}
递归法:
#include <stdio.h>
int monkey(int day){
int n;
if(day==10) return 1;
else
return n=2*monkey(day+1)+2;
}
void main()
{
int day;
printf("%d",monkey(1));
}
第3个回答 2013-05-12
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n;
int num = 1;
printf("input n:\n");
scanf("%d",&n);
n = n-1;
//n-1 (n-1 + 1)*2
//n-2
while(n>=1)
{
num = (num+n)*2;
n--;
}
printf("first day:%d\n",num);
system("pause");
}本回答被网友采纳
第4个回答 2015-08-22
#include<stdio.h>
#include<stdlib.h>
int main()
{int n;
int num = 1;
printf("input n:\n");
scanf("%d",&n);
n = n-1;
//n-1 (n-1 + 1)*2
//n-2
while(n>=1)
{ num = (num+n)*2;
n--; }
printf("first day:%d\n",num);
system("pause"); }