猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半;还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下桃子的一半零一个。到第10天早上想再吃时,发现只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子。
思路:
第10天桃子数为1
天数每减1,则桃子的数就等于之前的(桃子数+1)*2
1 #include<stdio.h> 2 int main() 3 { 4 int x = 1; 5 int day = 10; 6 while (1) 7 { 8 day--; 9 if (day == 0) 10 { 11 break; 12 } 13 x = (x + 1) * 2; 14 } 15 printf("%d\n", x); 16 getchar(); 17 return 0; 18 }
实例代码参考:
1 #include<stdio.h> 2 int main() 3 { 4 int day, x1, x2; 5 day = 9; 6 x2 = 1; 7 while (day > 0) 8 { 9 x1 = (x2 + 1) * 2; //第一天桃子的数是第二天桃子数加1的2倍 10 x2 = x1; 11 day--; //因为从后向前推天数递减 12 } 13 printf("%d\n", x1); //输出桃子的总数 14 getchar(); 15 return 0; 16 }
时间: 2024-10-11 10:25:49