游客 Signup | Login
中文 | En

2121 - 超市促销

最近怡购搞促销,用m(m>1)个瓶子就可以换1瓶啤酒,因此特别爱喝酒的Tom同学也不例外,他买了n(n<=100)瓶啤酒,喝完之后就可以拿去怡购换,可是现在的问题是,到最后,Tom同学一共能得到多少瓶啤酒呢?

Input

输入数据首先包括一个整数t(1<=t<=50),表示测试数据的个数,然后是t行数据,每一行包括两个整数,nm

Output

对于每个测试样例,请输出Tom同学得到的啤酒总数,每次输出占一行。

Examples

Input

3
4 3
10 3
100 5

Output

5
14
124

Solution C

#include<stdio.h>
int sum;
int judge(int a,int b)
{
	if((a%b+a/b)/b)
	{
	sum+=(a%b+a/b)/b;
	a=a%b+a/b;
	return judge(a,b);
	}
	else
	return sum;
	
}
main()
{
	int n,m,d;
	scanf("%d",&n);
	while(n--)
	{
		sum=0;
		scanf("%d %d",&m,&d);
			sum=m+m/d;
			judge(m,d);
			printf("%d\n",sum);
	}
}

Solution C++

#include <stdio.h>
int main()
{
	int n , v, k ,re , sum ,fre ,temp ,temp2;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d%d",&v,&k);
		sum = v + v / k;
		fre = v % k ;
		re = v / k ;
		temp = fre +re;
		while(temp >=k)
		{
			sum = sum + (fre + re) / k;
			temp2 = fre+re;
			temp = (fre + re) % k +(fre + re) /k;
			fre = temp2 %k;
			re = temp2 /k;
		}
		printf("%d\n",sum);
	}
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题