感觉是相同的代码却一个过得了一个过不了

请问这两个java代码有什么不同,为什么做题的时候第一个能过,第二个就过不了
题目如下https://www.luogu.com.cn/problem/P1161

import java.util.*;

public class Main {

    public static void main(String[] args) {

        new Main().sf();
    }

    int n = 0, m = 0;
    int t = 0;
    double a = 0;

    public void sf() {

        Scanner in = new Scanner(System.in);

        m = 0;
        n = in.nextInt();
        
        for (int i = 0; i < n; i++) {
            
            a = in.nextDouble();
            t = in.nextInt();
            for (int j = 1; j <= t; j++) {
                int x = (int)Math.floor(j*a);
                m ^= x;
            }
        }
        System.out.println(m);
    }
}
import java.util.*;

public class Main {

    public static void main(String[] args) {
        int n = 0;
        int t = 0;
        double a = 0;

        Scanner in = new Scanner(System.in);

        int m = 0;

        n = in.nextInt();

        for (int i = 0; i < n; i++) {
            a = in.nextDouble();
            t = in.nextInt();
            for (int j = 1; j <= t; j++) {
                int x = (int) Math.floor(j * a);
                m ^= x;
            }
        }
        System.out.println(m);
    }
}

因为第一个是个函数

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^