本帖最后由 1581750802 于 2018-11-15 18:41 编辑
[Java] 纯文本查看 复制代码 /**
* 【1】天朝有一个乞丐姓洪,去天桥要钱
* 第一天要了1块钱 第二天要了2块钱 第三天要了4块钱 第四天要了8块钱
* 以此类推
* 问题: 洪乞丐干10天,收入是多少?
*/
/**
* @author NOT ME
* @description 递归练习题demo01第一题
* @create 2018/11/15 0015上午 10:01
*/
public class Coder01 {
private static int money;
private static int sum;
private static final int day = 10;
public static void main(String[] args) {
System.out.println(getSum(day));
System.out.println(get(day));
}
/**
* @description 计算第day天的乞讨金额,后一天是前一天的一倍
* @param day 乞讨天数
* @return: int 第day天的乞讨总和
* @Date: 2018/11/15 0015 上午 10:41
*/
private static int getMoney(int day) {
if (day == 1) {
return 1;
}
money = getMoney(day - 1) * 2;
return money;
}
/**
* @description day天乞讨总和,非递归实现
* @param day 乞讨天数
* @return: int 乞讨总和
* @Date: 2018/11/15 0015 上午 11:38
*/
public static int getSum(int day) {
while (day > 0) {
sum = sum + getMoney(day);
day--;
}
return sum;
}
/**
* @description day天乞讨总和,递归实现
* @param day 乞讨天数
* @return: int 乞讨总和
* @Date: 2018/11/15 0015 上午 11:38
*/
public static int get(int day) {
if (day == 1) {
return 1;
}
int money = getMoney(day);
return get(day -1) + money;
}
} |