题目背景
温馨提醒:吸烟有害健康,请勿尝试吸烟!
题目描述
Peter 有 �n 根烟,他每吸完一根烟就把烟蒂保存起来,�k(�>1k>1)个烟蒂可以换一个新的烟,那么 Peter 最终能吸到多少根烟呢?
与某些脑筋急转弯不同的是,Peter 并不能从异次元借到烟蒂,抽完后再还回去。
输入格式
每组测试数据一行包括两个整数 �,�n,k(1<�,�≤1081<n,k≤108)。
输出格式
对于每组测试数据,输出一行包括一个整数表示最终烟的根数。
输入输出样例
输入 #1复制
4 3输出 #1复制
5输入 #2复制
10 3输出 #2复制
14说明/提示
对于 100%100% 的数据,1<�,�≤1081<n,k≤108。
洛谷的高赞解法实在太牛,我这个小蒟蒻只能膜拜大佬。
我的解法容易想到,就是代码长,不像大牛的代码只有几行。
注释很详细,请各位放心食用!!!
package LuoGu;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int n1=n;
int k=sc.nextInt();
int number=0;
int exchange=0;
//分析
// 烟的根数number=原本的烟的根数n+换的烟的根数exchange
// 主要是计算exchange
// 写一个循环,烟头的数量一到k,exchange和n1就自增一次,
// 这里不能用n,因为n的数量是不能改变的。
for(int i=1;i<n1+1;i++){
// i要从1开始,因为要用到i%k==0这个条件
// 从0开始的话不合题意。
if(i%k == 0){
exchange++;
n1++;
}
}
//输出测试追踪变量
//System.out.println(n);
// System.out.println(exchange);
number= n+exchange;
System.out.println(number);
}
}