黑马程序员技术交流社区

标题: 【成都校区】JAVA小练习 [打印本页]

作者: 1581750802    时间: 2018-11-15 12:56
标题: 【成都校区】JAVA小练习
本帖最后由 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;
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2