我的代码运行,但对于其中一个测试,当我只需要一个输出时,会打印两个输出。我不确定如何避免这种情况。
这就是任务:
编写一个应用程序,显示从2到1000的每个完美数字。一个完美数等于所有被平均分割的数之和。例如,6是完美的,因为1、2和3等分,它们的和是6;然而,12不是一个完美的数字,因为1,2,3,4,6等分,它们的总和大于12。
提供的模板列出了for循环的首字母,以检查从2开始到1000的每个数字。在这个for循环中,将调用perfect()方法,在这里,如果每个数字都符合上述条件,您将提交一段代码进行测试。
如果满足这些条件,则将result设置为true,并使用sum将方法参数中可被int n整除的数字相加。
public class Perfect{
public static void main (String args[]){
final int MAX = 1000;
for(int i = 2; i <= MAX; i++)
if(perfect(i) == true)
System.out.println("The number " + i + " is perfect");
}
public static boolean perfect(int n){
int sum = 1;
int i;
boolean result = false;
for (i = 2; i < n / 2; i++) {
if (n % i == 0) {
sum += i;
}
}
if (sum == i) {
return true;
}
else {
return false;
}
}
}
我的输出:数字496是完美的数字729是完美的
预期输出:数字496是完美的
它只希望打印第一行。。。
根据这个问题,你必须打印出所有的完美数字。我创建了一个小片段,试试看。
public void printPerfect() {
for(int i=2;i<1000;i++) {
List<Integer> l =factors(i);
int sum =0;
for (Integer factor : l) {
sum+=factor;
}
if(sum==i) {
System.out.println("perfect-- " +i);
}
}
}
List<Integer> factors(int number) {
List<Integer> l = new ArrayList<Integer>();
for(int i = 1; i <= number; ++i) {
if (number % i == 0) {
if(i!=number)
l.add(i);
}
}
return l;
}
首先,我不知道你是否使用了正确的公式。但是,你应该知道第一个完全数是6,28,496和8128。729不是一个完美的数字。
希望有帮助。
public static void main(String[] args) {
int i, j, s;
System.out.println("Perfect numbers 1 to 1000: ");
for(i=1;i<=1000;i++){
s=0;
for(j=1;j<i;j++){
if(i%j==0){
s=s+j;
}
}
if(i==s){ //if i == s is perfect
System.out.println(i);
}
}
}
}
您需要将sum
与原始数字n
进行比较,而不是i
。您需要在循环条件中添加1,否则它将错过偶数中的最后一个除法器
public static boolean perfect(int n){
int sum = 1;
for (int i = 2; i < (n / 2) + 1; i++) {
if (n % i == 0) {
sum += i;
}
}
return sum == n;
}
我是Java新手,为了练习,我在互联网上找到了一项任务: "在你输入的两个数字之间找到所有完美的数字。" 顺便说一下——一个完美的数字是一个自然数,等于它所有除数的和。所以我开始工作,遇到了这样一个问题,当我输入两个数字时。 例如:,我在控制台中得到正确答案:。但是,如果第一个数字是,例如,,第二个是,我会将此输出输出到控制台:,而我应该只得到。也就是说,出于某种原因,最小值不会缩短对完美数的搜索
我做了一个关于1-1000之间的完美数的家庭作业,其中一个数等于它的除数之和。我找到了正确的代码来检查一个数字是否是一个完美的数字,并发现这些数字是1,6,28,496(我不知道为什么会包括1,但我老师的例子中包括了1)。我的问题很简单。我希望得到的结果是: 1=1 6=123 28=124714 496=123816162124248 但我最终得到的结果是: 1=1 6=1234 496=123
例如,243是3的完美幂,因为243=3^5。 我以前一直在使用,我认为它工作得很好,但后来我用上面的示例尝试了它,由于浮点运算,它实际上返回了4.99999999999。所以它只适用于非常小的数字,我发现不到大约100个。 我想我可以用一个循环来重复乘法。。。i、 将i设置为3,然后设置为9,然后设置为27,然后设置为81,然后设置为243,这等于目标值,所以我们知道这是一个完美的幂。如果它达到
这是我的代码:- 为什么程序不打印完美的数字? 我已经检查了很多次代码,但我找不到解决方案。请告诉我代码中出了什么问题。提前谢谢 任何帮助都将不胜感激。。。。
好的,我目前正在一个网站上工作,对于网站的一部分,我试图显示一些来自SQL数据库的数据。我希望数据以如下所示的方式显示: 本质上,这应该显示一条记录,但是,我的问题是,我的样式表的设置方式是,每个项目列表/行只允许显示三个项目div。我不太明白怎么做,所以每个div只能显示3条记录,然后用PHP重置。
问题内容: 我正在尝试创建两个线程,一个线程显示0到10的偶数整数,一个线程显示1到11的奇数整数。下面的代码是否适合设计该程序? 问题答案: 我只是更改一些细节(无需在此处使用模运算符…):