题目描述
请计算
∑i=ab1i
,结果请使用分数表示,并保证分子与分母互质。
输入
第一行是一个整数T(1≤T≤1100),表示样例的个数。 每个样例占一行,为两个整数a,b(2≤a≤b≤100,b−a≤10)
输出
每行输出一个样例的结果,格式为“分子/分母”
样例输入
3 2 2 2 3 3 6样例输出
1/2 5/6 19/20
解题思路: 在数学知识上,相信大家应该都没问题。所以只要会写 gcd() 和 注意数据范围,就能很轻松的过了,就不详细讲了。
AC代码:
#include <stdio.h>
typedef __int64 ll;
ll a,b,x,y,t;
ll gcd(ll p,ll q){
return q>0 ? gcd(q,p%q) : p;
}
int main()
{
int T;
scanf("%d",&T);
while ( T --)
{
scanf("%I64d %I64d",&a,&b);
x = 1, y = a; // x为分子, y 为分母
for (ll i = a+1; i <= b; i ++)
{
x = x*i + y;
y *= i;
t = gcd(x,y);
x /= t, y /= t;
}
printf("%I64d/%I64d\n",x,y);
}
return 0;
}