gpt4 book ai didi

java - 使用 boolean 值检查完美数

转载 作者:行者123 更新时间:2023-12-02 03:16:47 25 4
gpt4 key购买 nike

我的 Java 编码在使用 boolean 方法查找完美数字时遇到问题。我想像这样打印出来:例子 :‘6是一个完美的数字。 6 是 1, 2, 3' 的和否则 :“9 不是一个完美数字”

但我不知道如何编码“6是1,2,3之和”。谁能帮我?这是我的编码:

import java.util.Scanner;

public class trial
{
public static void main(String[] args)
{
// TODO Auto-generated method stub

Scanner perfect = new Scanner(System.in);
System.out.print("Enter any integer number : ");
int n = perfect.nextInt();

if(isPerfectNumber(n))
{
System.out.println(n+" is a perfect number");

}
else
{
System.out.println(n+" is not a perfect number");
}
}

public static boolean isPerfectNumber(int n)
{
int sum = 0;
for (int i=1; i<n; i++)
{
if (n%i == 0)
{
sum = sum + i;
}
}
if (sum == n)
{
return true;
}
else
{
return false;
}
}
}

最佳答案

好吧,您已经知道如何根据 if (n%i == 0) 行获取数字的因数。

所以,仅提示,因为这几乎肯定是类作业。

在将因子添加到总和中的同时,您应该将其添加到某些描述的列表中,并将其提供给调用函数。

一种可能是返回一个列表,第二个和后续元素是给定数字的所有因子,第一个元素是这些元素的总和。

因此,对于 6,您将得到列表 {6, 1, 2, 3}12 将为您提供 {16, 1, 2, 3, 4, 6}7 将为您提供 {7, 1}

这样,您只需对照第一个元素检查原始数字,如果它们相等,则打印出其他元素。换句话说,伪代码如:

input num
factorList = getFactorList(num)
if factorList[0] == num:
print num, " is perfect, factors are:"
for idx = 1 to factorList.size() - 1 inclusive:
print " ", factorList[idx]
println "."
else:
println num, " is not perfect."

关于java - 使用 boolean 值检查完美数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40190463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com