题目描述
- 妈妈给了小明m元零花钱,为了鼓励小明节约,说如果小明每天只消费1元,每花k元就可以得到1元额外奖励,如果听妈妈的话小明最多可以花多少天?
输入
输入2个整数m、k,(2 <= k<=m<= 1000)
输出
输出一个整数,表示m元可以消费的天数
样例输入
10 4
样例输出
13
分析问题
- 首先小明有m元,是花到k元的时候被奖励1元,所以需要定义变量
cost
记录花到k元是什么时候; - 其次小明比较听话,每天只花1元,所以需要定义变量保证每花一元都要
day++
; - 小明每一天花一元,天数也跟着增加
cost++
; - 直到cost加到与k相等时,就需要再给小明奖励1元
m += 1
,注意此时,cost一定要cost--
,要不然小明钱花不完了~~
实操环节
package demo;
import java.util.Scanner;
public class PocketMoney {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();//小明启动资金
int k = sc.nextInt();//每k元奖励 1 元
int cost = 0;//记录小明花费
int day = 0;//记录花完所有需要多少天
if(k <= m && k >= 2 && m<= 1000) {
while (m != 0) {//m为0,程序就结束了
m -= 1;
day++;//不管有没有被奖励,天数是花一次增加一次
cost++;//cost加到与k相等为止
if(cost == k) {
m += 1; // 额外零花钱
cost = 0;//重置
}
}
}
System.out.println(day);
sc.close();
}
}
欢迎各位小伙伴留言讨论一下~