一,問題描述
翻譯如下:
二,問題分析
n = 10 k = 3
第一次可以抽 10 根菸,剩下 10 個菸頭可以組成 3 根菸加 1 個菸頭
第二次可以抽 3 根菸,剩下 3 個菸頭 加上上次剩餘的 1 個菸頭,總共4個菸頭 可以組成1根菸加1個菸頭
第三次可以抽1 根菸,剩下一個菸頭加上上次剩餘1個菸頭,剩下 2 個菸頭 無法繼續
n = n % k + n / k; //更新n值
三,代碼解答
#include<iostream>
using namespace std;
int main() {
int n, k; // n根菸,k個菸頭組成一支新的煙
while (cin>>n>>k)
{
int res = n;
int t = 0;
if (n < k) //n<k 此時剩餘菸頭無法組成一支新的煙
cout << res << endl;
else {
while (n / k)
{
res += (n / k);
n = n % k + n / k;
}
cout << res << endl;
}
}
return 0;
}