nyoj_94 cigarettes

cigarettes

時間限制:3000 ms  |  內存限制:65535 KB
難度:2
描述

Tom has many cigarettes. We hypothesized that he has n cigarettes and smokes them

one by one keeping all the butts. Out of k > 1 butts he can roll a new cigarette. 
Now,do you know how many cigarettes can Tom has?

輸入
First input is a single line,it's n and stands for there are n testdata.then there are n lines ,each line contains two integer numbers giving the values of n and k.
輸出
For each line of input, output one integer number on a separate line giving the maximum number of cigarettes that Peter can have.
樣例輸入
3
4 3
10 3
100 5
樣例輸出
5
14
124

題意:

Tom有n支香菸,每k支又能搓成一支新的香菸,問Tom總共能擁有多少支香菸。

分析:

用變量sum來記錄總香菸數,剛開始讓sum=n。

每次讓sum+=n/k;n=n/k+n%k。

直到n爲0。

以下代碼裏會用到一些輔助變量:

#include<cstdio>
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int a,b,y,s,sy;
		scanf("%d%d",&a,&b);
		int sum=a;
		s=a/b;
		y=a%b;
		sy=s+y;
		while(1)
		{
			sum+=s;
			s=sy/b;
			y=sy%b;
			sy=s+y;
			if(!s)
				break;
		}
		printf("%d\n",sum);
	}
	return 0;
}


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