本帖最后由 donkey2 于 2014-11-15 10:06 编辑
/* 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少个桃子。 */
/* 我的分析:设猴子第一天摘下n个,当天吃了n/2 +1 个,第二天 吃了(n/2-1)+1。。。依此类推第十天,只剩一个了。 从最后一天往回回溯,那样前一天的桃子数量为先加1,再乘以2
1. 只需要知道每天吃当天的一半加1个,因为变成的目的是让计算机帮我们思考,而不是我们自己计算出算式而后写程序。 2. n为偶数,要进行输入控制。
*/
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... // NSLog(@"Hello, World!"); int nDay10 = 1; int day = 10; int number; for (; day > 0; day--) { number = (number + 1)*2; } NSLog(@"第一天桃子的数量为 %i",number); } return 0; }
遇到的问题: 1. 开始思路有问题,想输入1,从而得到第一天的结果。事实上计算机并不能帮你解方程。 2. 反过来想的话,前一天的数量是加1后乘以2,思路就通了。
|