3.14饿了么笔试疑问求解答

如题,楼主已经交卷,不存在作弊行为
第二题,楼主的代码如下,测试了给出的用例2 3 4 答案正确,换成2 4 3答案错误,为什么?我不明白哪里有问题,求大伙帮忙看看
由于明后天还有三场笔试,如果这个问题解决不了就三场全寄了,😭😭求求帮帮我
自己试过自测用例2 4 3/1 3/2 4 4/ 1 4/2 3 3全都报错,但是单看自己的输出应该是对的,为什么

ps:目前已知==2那里的if块输出应该是2 1 3,但是这和我上面提的用例无关吧,输入3 和4都不进到这个if的

文本代码如下:

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int t = in.nextInt();
        for(int i = 0; i < t; i++){
            int n = in.nextInt();
            if (n < 4 ){
                System.out.print(-1 + " ");
            }else {
                if (n*(n+1)*(2*n+1)/6 %3 == 0){
                    for(int j = 1; j <= n; j++){
                        System.out.print(j+" ");
                    }
                } else if (n*(n+1) *(2*n+1)/6 %3 == 1){
                    System.out.print(2+" ");
                    System.out.print(1+" ");
                    for(int j = 3; j <= n; j++){
                        System.out.print(j+" ");
                    }
                } else if (n*(n+1) *(2*n+1)/6 %3 == 2){
                    System.out.print(1+" ");
                    System.out.print(3+" ");
                    System.out.print(2+" ");
                    for(int j = 4; j <= n; j++){
                        System.out.print(j+" ");
                    }
                }
            }
            System.out.println();
        }
    }
}
全部评论
自测的时候?牛客的模式是除非你用题目给出的样例,否则不告诉你结果对不对的
4 回复 分享
发布于 03-14 21:06 江苏
1 3 2 只能把余数-1 啊余数为 2 的情况下应该是 2 1 4 3开头吧
1 回复 分享
发布于 03-14 20:58 四川
我跟你一样,完全不知道为什么牛客会说结果被错误
点赞 回复 分享
发布于 03-14 20:54 浙江
余2的时候处理不对,应该是开头变为2 1 4 3后续不变
点赞 回复 分享
发布于 03-14 20:58 美国
我也是这个思路,原因是n要转为long long,不然n * n+1 * 2n+1会溢出,要改成long long
点赞 回复 分享
发布于 03-14 20:58 江苏
uu笔试的时候有调试按钮吗,为什么我没找到
点赞 回复 分享
发布于 03-15 11:37 香港

相关推荐

评论
3
2
分享

创作者周榜

更多
牛客网
牛客企业服务