描述
有一堆彩灯,红色绿色两种颜色,现在要把它们串在一起,要求每个红灯后面至少要有1个绿灯,求一共有多少种不同的串法
输入
第1行是一个正整数n,表示测试案例的数量
第2到第n+1行是n组测试数据,每行数据有两个正整数,分别表示红灯的数量和绿灯的数量
输出
针对每行测试数据,输出不同的串法数量。(答案不会超过50万)
每组案例输出完都要换行。
样例输入
1
2 3
样例输出
3
HINT
2个红灯3个绿灯合法的串法有:绿红绿红绿、红绿绿红绿、红绿红绿绿,一共3种
#include <iostream>
#include <cmath>
#include<limits.h>
using namespace std;
int main()
{
int n;
cin >> n;
while (n--)
{
long long int r, g, c, mul1 = 1, mul2 = 1;
cin >> r >> g;
if (r > g)
{
cout << 0;
}
else if (r == g || r == 0)
{
cout << 1;
}
else
{
if (r > g / 2)
{
r = g - r;
}
for (int i = 1; i<=r; i++)
{
mul1 = mul1 * g;
mul2 = mul2 * i;
g--;
}
c = mul1 / mul2;
cout << c;
}
cout << endl;
}
return 0;
}