Problem A.分数加法
题目描述
求2^-a + 2^-b,其中a和b均为正整数,结果请用最简分数表示。
输入格式
第一行为测试数据的组数T(1<=T<=400)。请注意,任意两组测试数据之间是相互独立的。
每组测试数据一行,包含两个整数a和b(2<=a,b<=20)。
输出格式
对于每组测试数据,在一行内输出结果,分子和分母用“/”隔开。
输入样例
2
2 4
3 2
输出样例
5/16
3/8
解答:
import java.util.Scanner;
/*
Problem A.分数加法
题目描述
求2^-a + 2^-b,其中a和b均为正整数,结果请用最简分数表示。
输入格式
第一行为测试数据的组数T(1<=T<=400)。请注意,任意两组测试数据之间是相互独立的。
每组测试数据一行,包含两个整数a和b(2<=a,b<=20)。
输出格式
对于每组测试数据,在一行内输出结果,分子和分母用“/”隔开。
输入样例
2
2 4
3 2
输出样例
5/16
3/8
*/
public class Test{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()) {
int n = scanner.nextInt();
for(int i = 0; i < n; i++) {
int a = scanner.nextInt(), b = scanner.nextInt();
a = (int) Math.pow(2, a);
b = (int) Math.pow(2, b);
int a1 = 1, b1 = 1;
a1 *= a1 * b;
b1 *= a * b1;
a1 += b1;
a *= b;
int x = gcd(a1, a);
System.out.println(a1 / x + "/" + a / x);
}
}
}
public static int gcd(int a, int b){
return b == 0? a : gcd(b, a % b);
}
}