【问题标题】:Perfect Number between 1 and 1000 [closed]1 到 1000 之间的完美数
【发布时间】:2015-12-25 01:17:40
【问题描述】:

我试图找到 1 到 1000 之间的完美数字,我写了这段代码,但它没有用! 怎么了?

public class Perfect {
    public static void main(String[]args) {
        int sum=0;
        for (int n = 1; n < 1000; n++) {
            for (int j = 1; j < n/2 ; j++) {
                if (n % j == 0)
                    sum = sum + j;
            }
            if (sum == n) {
                System.out.println(sum);
            }
        }
    }
}

【问题讨论】:

  • 什么不起作用?
  • 您永远不会重置 sum 的值,因此在每次迭代时它都会从之前的值开始。
  • 从一开始你的条件j &lt; n/2就不会是真的

标签: java perfect-numbers


【解决方案1】:

sum声明(更重要的是初始化移入for环形。此外,您需要在内部循环中测试&lt;=。类似的,

for (int n = 1; n < 1000; n++) {
  int sum = 0;
  for (int j = 1; j <= n / 2; j++) {

我得到496

【讨论】:

  • @DavidWallace 谢谢。已编辑。
  • 实际上,你得到 6、28 和 496。
猜你喜欢
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多