C语言题解法

来源:百度知道 编辑:UC知道 时间:2024/05/10 08:14:35
【程序21】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
用FOR语句DOWHLIE语句两种
谢谢

FOR语句
#include <stdio.h>

void main() {
int i;
int count = 1;

for(i=10-1;i>=1;i--) {
count = (count + 1) * 2;
}

printf("第一天共摘了多少: %d\n", count);
}

DOWHLIE语句
#include <stdio.h>

void main() {
int i;
int count = 1;

i=10 - 1;
do{
count = (count + 1) * 2;
i--;
}while(i>=1);

printf("第一天共摘了多少: %d\n", count);
}

思路如下:
天数 **** 桃子数 **** 计算方式
10 **** 1 **** 无
9 **** 4 **** x-x/2-1=1(x=4)
8 **** 10 **** x-x/2-1=4(x=10)
7 **** 22 **** x-x/2-1=10(x=22)

又因为:
1*2+2=4
4*2+2=10
10*2+2=22
所以编程如下:
main()
{
int a=1,i;
for (i=1;i<10;i++)
a=a*2+2;
printf ("%s%d\n","第一天所摘桃子数为:",a);
}

<