FOJ 1150

一,問題描述

FOJ1150題目鏈接

 翻譯如下:

 

二,問題分析

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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章