You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java代码本地运行正常提交后报编译错误,求帮忙排查问题

问题排查

1. 直接触发编译错误的问题

你代码中System.out.println("true")这一行末尾缺少Java语法强制要求的分号;,这是编译失败的核心原因。

2. 编译通过后也会导致结果错误的逻辑问题

补全上述分号后代码可正常编译,但运行结果依然不符合预期:

  • sum变量定义在所有循环外层,每处理完一个数的因子和后没有重置为0,下一轮计算新数字的因子和时会累加之前的结果,导致判断完全错误。需要把int sum = 0移到处理测试用例的for循环内部,每次处理新数字前先初始化sum。
  • 因子求和的循环条件j < n可优化为j <= Math.sqrt(n)减少循环次数,属于优化项不影响基础正确性。

修复后可正常运行的完整代码

import java.util.*;
import java.io.*;

public class Main {
  public static void main(String args[]) throws IOException {
    Scanner in = new Scanner(System.in);
    int t = in.nextInt();
    
    for(int i = 0; i < t; i++) {
      int sum = 0;
      int n = in.nextInt();
    
      for(int j = 1; j < n; j++) {
        if(n % j == 0)
          sum += j;
      }
      
      if(n == sum)
        System.out.println("true");
      else
        System.out.println("false");
    }
  }
}

内容的提问来源于stack exchange,提问作者user17247595

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:36:03