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();
}
}
}
第二题,楼主的代码如下,测试了给出的用例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();
}
}
}
全部评论
自测的时候?牛客的模式是除非你用题目给出的样例,否则不告诉你结果对不对的
1 3 2 只能把余数-1 啊
余数为 2 的情况下应该是 2 1 4 3开头吧
我跟你一样,完全不知道为什么牛客会说结果被错误
余2的时候处理不对,应该是开头变为2 1 4 3后续不变
我也是这个思路,原因是n要转为long long,不然n * n+1 * 2n+1会溢出,要改成long long
uu笔试的时候有调试按钮吗,为什么我没找到
相关推荐

点赞 评论 收藏
分享
03-14 20:44
华南理工大学 深度学习 点赞 评论 收藏
分享

点赞 评论 收藏
分享