//没有想仔细,,WA了几次。还好,
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
#include<algorithm>
#include<queue>
#include<string.h>
#include<stack>
#include<math.h>
#include<string>
#include<stdlib.h>
#include<list>
#include<vector>
using namespace std;
int get(int a,int b)
{
if (a>b)
swap(a,b);
if (b%a==0)
return a;
return get(b%a,a);
}
int main()
{
int i,j,k;
int t;
scanf("%d",&t);
while (t--)
{
scanf("%d%d",&i,&j);
if (i<=j)
{
k=get(i,j);
k=i+j-k;
printf("%d\n",k);
}
else
{
k=get(i,j);
k=j+i-k;
printf("%d\n",k);
}
}
}
训练士兵
Time Limit: 1000 ms Memory Limit: 65536 kB Solved: 93 Tried: 556
Description
elfness正在玩一个游戏,在这个游戏里,他掌管着一个王国。
这是一个回合制的游戏,初始的时候elfness没有任何钱,每一回合开始他会获得a的金钱,当elfness的金钱大于等于b时,elfness会花钱去训练士兵,直到他的钱小于b,每训练一个士兵需要花b的钱。训练完士兵后进入下一回合。elfness想知道他在整个游戏过程中他钱最多的时刻他有多少钱。
Input
输入的第一行是一个整数T(T<=10000), 表示有T组测试数据。
对于每组测试数据,有一行,包含两个整数A和B(1<=A,B<=10^9).
??
Output
对于每组测试数据,输出一个整数,表示elfness在钱最多的时刻有多少钱。
Simple Input
2
2 3
7 11
Simple Output
4
17
Hint
对于第一组样例,elfness拥有的金钱数将如下变化:0->2->4->1->3->0->......所以他最多时有4的金钱。
输入量很大,请用scanf代替cin进行输入。
Source