问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第十天早上想再吃的时候,发现只剩下了一个桃子了。求第一天共摘了多少?
思路:
方法一:
#include<stdio.h> int main() { int day = 9;//因为第十天剩下一个桃子了,从第九天开始连续算前9天 int s1 = 0;//共有s1个桃子 int s2 = 1;//第十天有一个桃子 while (day) { s1 = (s2 + 1) * 2; s2 = s1; day--; } printf("第一天摘了%d个桃",s1); return 0; }方法二:
#include<stdio.h> int main() { int s1 = 0; int s2 = 1; int i = 1; for (1; i < 10; i++) { s1 = (s2 + 1) * 2; s2 = s1; } printf("%d", s1); system("pause"); return 0; }
方法三:
#include<stdio.h> int sumPeach(int day) { if (day == 10) { return 1; } else { return 2 * (sumPeach(day + 1)) + 2; } } int main() { int sum = 0; sum = sumPeach(1); printf("%d", sum); return 0; }
运行结果: