A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1581750802 初级黑马   /  2018-11-15 12:56  /  1675 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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;
    }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马