gpt4 book ai didi

java - 完美的数字格式

转载 作者:行者123 更新时间:2023-12-01 13:47:58 32 4
gpt4 key购买 nike

我的作业是关于 1-1000 之间的完美数,其中一个数等于其除数之和。我找到了正确的代码来检查一个数字是否是完美数字,并发现这些数字是 1、6、28、496(我不知道为什么包含 1,但它包含在我老师的示例中)。我的问题很简单。我希望的输出是这样的:
1 = 1
6 = 1+2+3
28 = 1+2+4+7+14
496 = 1+2+4+8+16+31+62+124+248
但我设法得到的是:
1 = 1
6 = 1+2+3+
28 = 1+2+4+7+14+
496 = 1+2+4+8+16+31+62+124+248+
最后如何排除多余的+?
我的代码是这样的:

private static boolean perfect(int n){
boolean cek=false;
int x=0;
if(n==1)x=1;
for(int i=1;i<n;i++){
if(n%i==0)
x+=i;
}
if(x==n)cek=true;
return cek;
}
public static void main(String[] args) {
for(int i=1;i<1000;i++){
if(perfect(i)){
if(i==1)
System.out.println(i+"\t = "+i);
else{
System.out.print(i+"\t = ");
for(int j=1;j<i;j++){
if(i%j==0)
System.out.print(j+"+");
}
System.out.println("");
}
}
}
}

提前致谢。

最佳答案

因为这是家庭作业,所以我只给出一个提示,简单地说,如果不是循环的第一次迭代,则仅打印+。测试起来很容易,我会让你弄清楚。

编辑,并附加提示:您可能需要尝试打印 + 的确切位置。

关于java - 完美的数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20205189/

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