数据类型使用 long,int 类型只能过 2/3 的用例,排查了好久,怎么看都感觉代码没问题,就是过不了后面的用例,把 x,y,z 的数据类型全改成 long 就好了
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextLine()) { int n = in.nextInt(); long h = in.nextLong(); long[][] ints = new long[n][3]; for (int i = 0; i < n; i++) { for (int j = 0; j < 3; j++) { ints[i][j] = in.nextInt(); } } in.nextLine(); for (long[] i : ints) { long x = i[0]; long y = i[1]; long z = (h << 1) - i[2]; long cd = gcd(gcd(x, y), z); System.out.println((x / cd) + " " + (y / cd) + " " + (z / cd)); } } } private static long gcd(long a, long b) { a = Math.abs(a); b = Math.abs(b); while (b != 0) { long temp = b; b = a % b; a = temp; } return a; } }