Description | ||
级数题目描述请计算∑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 |
按照题目意思找分子分母的表达式,可以找草稿纸写一下,并约分就好了。
大概是每次相加是fz/fm+1/i ;fm = fm*i,fz = fz*i+fm;
#include<stdio.h>
__int64 gcd(__int64 a,__int64 b)
{
if(a%b==0)return b;
else {
a = a%b;
return gcd(b,a);
}
}
int main(void)
{
int t;
scanf("%d", &t);
while(t--){
int a,b;
scanf("%d %d", &a, &b);
__int64 fz = 1,fm=a,temp;
for(int i=a+1;i<=b;i++){
fz = fz*(i)+fm;
fm = fm*i;
temp = gcd(fm,fz);
fz = fz/temp;
fm = fm/temp;
}
printf("%I64d/%I64d\n", fz, fm);
}
return 0;
}