级数
题目描述
请计算
∑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
思路分析:很久没有上传了,有点懒了,(做完128后再继续),之所以上传这道题就是为了提醒自己以后一定要次次用__int64,已经很多次用int爆数据WA了
#include <stdio.h>
__int64 gcd(__int64 x,__int64 y){
return y?gcd(y,x%y):x;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
__int64 a,b;
scanf("%I64d %I64d",&a,&b);
__int64 fenzi2 = 0,fenmu2 = 1;
__int64 fenzi1 = 1,fenmu1 = a;
__int64 GCD;
for(int i =a;i<=b;i++){
fenzi1 = fenzi1*fenmu2+fenzi2*fenmu1;
fenmu1 = fenmu1*fenmu2;
GCD=gcd(fenzi1,fenmu1);
fenzi1/=GCD;
fenmu1/=GCD;
fenzi2 = 1;
fenmu2 = i+1;
}
printf("%I64d/%I64d\n",fenzi1,fenmu1);
}
}