m0_75081807 2023-09-26 10:12 采纳率: 50%
浏览 24
已结题

数学问题也不知道那种类型的问题

开始0元,每天能够获得1元,但是如果花费2元后每天能够多获得1元,花费20元后每天能够多获得12元,怎样才能最快获得100元

  • 写回答

11条回答 默认 最新

  • hydk-ctrl 2023-09-26 11:47
    关注

    先说答案,最短花费14天,总额钱数:123,花费2元次数:7,花费20元次数:6

    思路如下:

    1. 最长时间就是1元钱不花,一直累计共100天
    2. 前期肯定是先花2元积攒1元的方式快速累计,之后再通过花20元的方式累计12元是最合理的方式
    
    public static void main(String[] args) {
            int num = 100; //总数100元
            int day = 1; //每天的钱数获得1//当前获得钱数 从第0天开始计算,之后累计或消费
            int dayNum = 0;
    
            int dayCount = 100;//依据题意,最多100天完成
            int twoCount = 100;//计划花2元的天数
            int twentyCount = dayCount-twoCount;//剩下的就是计划花20元的天数
    
            int twoDaysCount = 0;//达成目标时,花费2元的实际天数
            int twentyDaysCount = 0;//达成目标时,花费20元的实际天数
    
            while (twentyCount <= 100) {
                int i = 0; //记录花费的总天数
                for (i = 1; i<=dayCount ; i++) {
                    if (dayNum >= num) {
                        break;
                    }
                    //每过1天,增加特定钱数
                    dayNum += day;
                    if (twoCount != 0) {
                        //花费2if (dayNum/2 >= 1) {
                            //每运行一次,花费2元的天数少一
                            twoCount -=1;
                            //实际花费2元天数加1
                            twoDaysCount += 1;
                            //花费2元,之后每一天多获得1元
                            dayNum -= 2;
                            day += 1;
                            System.out.println("在第"+i+"天花费2元,当前余额:"+dayNum+",以后获得金额:"+day);
                        }
                    }else {
                        //花费20if (dayNum/20 >= 1) {
                            //实际花费20元天数增加1
                            twentyDaysCount += 1;
                            //花费20元,之后每一天多获得12元
                            dayNum -= 20;
                            day += 12;
                            System.out.println("在第"+i+"天花费20元,当前余额:"+dayNum+",以后获得金额:"+day);
                        }
                    }
                }
                System.out.println("达成100元目标,当前钱数:"+dayNum+",总天数:"+(i-1)+",花费2元天数:"+twoDaysCount+",花费20元天数:"+twentyDaysCount);
                System.out.println("==============================================================================================================");
                //每循环一次 花2元的天数减少1,花20元的天数增加1
                twentyCount += 1;
                twoCount = dayCount-twentyCount;
                //每达成一次目标,重新统计天数
                twoDaysCount = 0;
                twentyDaysCount = 0;
                day = 1;
                dayNum = 0;
            }
    
        }
    

    运行最优结果如下,其他结果运行程序查看:

    
    在第2天花费2元,当前余额:0,以后获得金额:2
    在第3天花费2元,当前余额:0,以后获得金额:3
    在第4天花费2元,当前余额:1,以后获得金额:4
    在第5天花费2元,当前余额:3,以后获得金额:5
    在第6天花费2元,当前余额:6,以后获得金额:6
    在第7天花费2元,当前余额:10,以后获得金额:7
    在第8天花费2元,当前余额:15,以后获得金额:8
    在第9天花费20元,当前余额:3,以后获得金额:20
    在第10天花费20元,当前余额:3,以后获得金额:32
    在第11天花费20元,当前余额:15,以后获得金额:44
    在第12天花费20元,当前余额:39,以后获得金额:56
    在第13天花费20元,当前余额:75,以后获得金额:68
    在第14天花费20元,当前余额:123,以后获得金额:80
    达成100元目标,当前钱数:123,总天数:14,花费2元天数:7,花费20元天数:6
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(10条)

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 请回答用户的提问 9月27日
  • 创建了问题 9月26日

悬赏问题

  • ¥15 pycharm添加远程解释器报错
  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照