Peter 的烟

题目背景

温馨提醒:吸烟有害健康,请勿尝试吸烟!

题目描述

Peter 有 nn 根烟,他每吸完一根烟就把烟蒂保存起来,kkk>1k>1)个烟蒂可以换一个新的烟,那么 Peter 最终能吸到多少根烟呢?

与某些脑筋急转弯不同的是,Peter 并不能从异次元借到烟蒂,抽完后再还回去。

输入格式

每组测试数据一行包括两个整数 n,kn, k1<n,k1081 < n, k \le 10^8)。

输出格式

对于每组测试数据,输出一行包括一个整数表示最终烟的根数。

样例 #1

样例输入 #1

1
4 3

样例输出 #1

1
5

样例 #2

样例输入 #2

1
10 3

样例输出 #2

1
14

提示

对于 100%100\% 的数据,1<n,k1081<n, k \le 10^8

题解

1
2
3
4
5
6
7
n, k = map(int, input().split())
sum_smoke = n
sum_di = n
while int(sum_di / k) > 0:
sum_smoke += int(sum_di / k)
sum_di = int(sum_di / k) + int(sum_di % k)
print(sum_smoke)

解释

第一行读取两个输入

第二行第三行定义烟的总数和烟蒂的总数

初始化烟和烟蒂肯定都是n

然后执行循环,判断,如果还能换烟,就执行循环体

循环体内容是把换来的烟加到烟的总数,然后重置烟蒂的数量。

这边有个注意的点就是,烟蒂的数量是换完之后剩下换不了的烟蒂加上换来的烟(抽完就是烟蒂),我第一次没有加换之前剩余的,所以有一个没通过

最后输出烟的总数

知识点

整除取整整除取余