游客 Signup | Login
中文 | En

2692 - X个核桃

<span style="font-size:10.5pt;font-family:'宋体';">目前我校<span>ACM</span><span>协会的发展如火如荼。除了省赛外,还报名参加了在北京的</span><span>ACM/ICPC</span><span>邀请赛,工期紧,任务重,今天大家都在加班呢。为鼓舞士气,队长打算给大家发一些高富帅才能喝得起的饮料,比如</span><span>X</span><span>个核桃。(传说中可以补脑)</span></span><span style="font-size:10.5pt;font-family:'宋体';"></span>

<span style="font-size:10.5pt;font-family:'宋体';">大家都知道,买饮料经常会出现“再来一瓶”的中奖信息,当然更多的是“谢谢你”(看到这个和看到“再买一瓶”基本上是一个心情的),赌概率的事情毕竟还是比较坑的。</span><span style="font-size:10.5pt;font-family:'宋体';"></span>

<span style="font-size:10.5pt;font-family:'宋体';">于是</span><span style="font-size:10.5pt;font-family:'宋体';">X<span>个核桃的公司很人性化的开展了空罐子换饮料的促销活动,实惠而且环保。每</span><span>M</span><span>个空罐子就可以换一罐新的饮料。换来的新饮料喝完后也可以参加兑换。</span></span><span style="font-size:10.5pt;font-family:'宋体';"></span>

<span style="font-size:10.5pt;font-family:'宋体';">现在给出大家要购买的饮料数目<span>N</span><span>,以及数字</span><span>M</span><span>,请计算大家最终一共可以喝多少罐饮料。</span></span><span style="font-size:10.5pt;font-family:'宋体';"></span>

Input

第一行一个数字T1<T<100),表示测试数据的组数。

第二行开始,每一行包含两个数字N,M(2<=n,m<=10^8)

Output

在单独的一行中,输出大家最终可以喝到的饮料数目。

Examples

Input

2
2 2
5 4

Output

3
6

Solution C

#include<stdio.h>
int main()
{
	int T,i,t;
	int N[100],M[100];
	scanf("%d",&T);
	while(T--)
	{   i=T;
		scanf("%d %d",&N[i],&M[i]);
		t=N[i];
   	    while(1)
		{
			if(N[i]%M[i]==0)
			{
				t=t+N[i]/M[i];
				N[i]=N[i]/M[i];
			}
			else if(N[i]%M[i]<M[i])
			{
				t+=N[i]/M[i];
				N[i]=N[i]/M[i]+(N[i]%M[i]);
				if(N[i]<M[i])
				{
					break;
				}
				
			}
		}
		printf("%d\n",t);
	}
	  return 0;
}

Solution C++

#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <string>
#include <fstream>
using namespace std;
int main()
{
	//ifstream cin;
	//cin.open("a.in");
	//ofstream cout;
	//cout.open("a.out");
    int testcase;
    cin>>testcase;
    while(testcase--)
    {
        long long initial,exnum;
        cin>>initial>>exnum;
        long long count=initial;
        while(initial>=exnum)
        {
            int exchange=initial/exnum;
            count+=exchange;
            initial%=exnum;
            initial+=exchange;
        }
        cout<<count<<endl;
    }
    return 0;
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题