听说,你很喜欢猴子吃桃子的时候。你知道猴子吃桃子应该怎样形容吗?
当然,在编程的世界里,这将会是非常有趣的!
今天要与你分享的是就是经典例题——猴子吃桃子的问题,一起来看看吧~
经典例题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
简要分析:看到这里,你会想到用循环和递归都能够解决。当然,你需要逆向思维去思考这个问题,思考如果从正面顺向解决可以吗?下面是从逆向利用递归和循环来解决的。
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int pear();
int n = 1;
int main(int argc, char *argv[]) {
int x, i, m=1;
for (i = 0; i < 9; i++){
m = pear();
printf("%d ",m);
}
printf("%d",m);
return 0;
}
int pear(){
n = 2 * (n + 1);
return n;
}
在这篇博客的最后想提出一个问题,还有其他的思维方法解决吗?