猴子吃桃算法
猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一 個 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一 個。到第 10 天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
程序分析:采取逆向思維的方法,從后往前推斷。
下面用了for循環(huán)和遞歸兩種方法來實現(xiàn)
package com.math.forth;/**** 猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一 個 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。* 以后每天早上都吃了前一天剩下的一半零一 個。到第 10 天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。* 程序分析:采取逆向思維的方法,從后往前推斷。* * @author wql**/ public class Math10 {public static void main(String[] args) {method();System.out.println(method2(1));}/**** 循環(huán)遍歷*/public static void method() {int sum = 1;// 第十天桃子數(shù)量for (int i = 9; i > 0; i--) {sum = (sum + 1) * 2;}System.out.println(sum);}/*** 遞歸方法* * @param day* @return*/public static int method2(int day) {if (day == 10) {return 1;} else {return (method2(++day) + 1) * 2;}} }轉(zhuǎn)載于:https://www.cnblogs.com/wangqilong/p/9417535.html
總結(jié)
- 上一篇: 刷题总结——拆网线(noip模拟 贪心
- 下一篇: idea刷新项目、清除项目缓存