Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 完全数_Java_List_Arraylist_Numbers_Perfect Numbers - Fatal编程技术网

Java 完全数

Java 完全数,java,list,arraylist,numbers,perfect-numbers,Java,List,Arraylist,Numbers,Perfect Numbers,我在java中尝试了这个程序,以获得多达1000个整数的有界常量输入。未获得预期的输出:( package.perfect.number; 导入java.util.ArrayList; 公共类数字{ 公共静态void main(字符串[]args){ long num=1000;int sum=0; ArrayList perfectList=新的ArrayList(); ArrayList factorList=新的ArrayList(); for(int i=1;i我认为你的内部for循环应

我在java中尝试了这个程序,以获得多达1000个整数的有界常量输入。未获得预期的输出:(

package.perfect.number;
导入java.util.ArrayList;
公共类数字{
公共静态void main(字符串[]args){
long num=1000;int sum=0;
ArrayList perfectList=新的ArrayList();
ArrayList factorList=新的ArrayList();

for(int i=1;i我认为你的内部for循环应该是这样的:

for(int j=1; j<=i/2; j++)
{         
       if(i%j==0)
       {
                factorList.add(j);
       }
}
for(int h=0; h<factorList.size(); h++)
      sum=sum+factorList.get(h);

if(sum==i)
perfectList.add(i);
sum=0;

for(int j=1;j我认为你的内部for循环应该是这样的:

for(int j=1; j<=i/2; j++)
{         
       if(i%j==0)
       {
                factorList.add(j);
       }
}
for(int h=0; h<factorList.size(); h++)
      sum=sum+factorList.get(h);

if(sum==i)
perfectList.add(i);
sum=0;

for(int j=1;j您的代码有多个问题:

  • 工厂列表未清除

  • 例如,6是一个整数=1+2+3,但inter for循环在2处停止。(j您的代码有多个问题:

  • 工厂列表未清除

  • 例如,6是一个完美的数字=1+2+3,但inter for循环停止在2。(j通过谷歌找到答案,根据您的要求进行少量更新。)

    您是否期望低于输出

    最高达1000的完美数字是: 0 6. 28 496

    public类{
    公共静态布尔值isPerfectNumber(整数){
    内部温度=0;
    
    对于(inti=1;i通过谷歌找到答案,根据您的要求进行少量更新

    您是否期望低于输出

    最高达1000的完美数字是: 0 6. 28 496

    public类{
    公共静态布尔值isPerfectNumber(整数){
    内部温度=0;
    对于(int i=1;i
    
  • 将总和计算代码从第二个循环移动到第一个循环
  • 求和计算后清除因子列表
  • 将总和计算代码从第二个循环移动到第一个循环
  • 求和计算后清除因子列表

  • 你的内循环有一个明显的问题(即
    for
    循环,以
    j
    作为索引变量):你的结束测试是
    j你的内循环有一个明显的问题(即
    for
    循环,以
    j
    作为索引变量):你的结束测试是
    j
    /*
    @作者12CSE54
    @日期:2014年10月28日
    */
    导入java.util.*;
    公共类完美{
    扫描仪s=新的扫描仪(System.in);
    公共作废检查(){
    System.out.println(“输入数字\n”);
    int p=sc.nextInt();
    内部温度=0;
    对于(int i=1;i
    /*
    @作者12CSE54
    @日期:2014年10月28日
    */
    导入java.util.*;
    公共类完美{
    扫描仪s=新的扫描仪(System.in);
    公共作废检查(){
    System.out.println(“输入数字\n”);
    int p=sc.nextInt();
    内部温度=0;
    
    对于(int i=1;i),您得到的输出是什么?您希望得到什么?可能是完美的数字?我已经编辑了您的类,使其看起来像普通代码,请在编写时记住这一点code@kocko-我得到的是一个空白输出,只有“a000之前的Perfec数字是:”你得到了什么样的输出?你期望什么?可能是完美的数字?我已经编辑了你的类,所以它看起来像一个普通的代码,请在编写时记住这一点code@kocko-我得到的是一个空白输出,只有“直到a000的Perfec数字是:”8128大于1000:)谢谢,更新了代码。Typeo,而不是i8128大于1000:)谢谢,更新了代码。Typeo,而不是iperfect ans表示完美数字完美ans表示完美数字感谢此解释(y)
    import java.util.ArrayList;
    
    public class PerfectNumbers {
    
        public static void main(String[] args) {
            long num = 1000;
            int sum = 0;
            ArrayList<Integer> perfectList = new ArrayList<>();
            ArrayList<Integer> factorList = new ArrayList<>();
            for (int i = 6; i < num; i++) {
                factorList.clear();
                for (int j = 1; j <= i / 2; j++) {
                    if (i % j == 0) {
                        factorList.add(j);
                    }
                }
                sum = 0;
                for (int h = 0; h < factorList.size(); h++) {
                    sum = sum + factorList.get(h);
                }
                if (sum == i) {
                    perfectList.add(i);
                }
    
            }
            System.out.println("The Perfect numbers upto 1000 are : ");
            for (Integer item : perfectList) {
                System.out.print(item + "/t");
            }
        }
    }
    
    public class PerfectNumbers {   
        public static boolean  isPerfectNumber(int number){        
            int temp = 0;
            for(int i=1;i<=number/2;i++){
                if(number%i == 0){
                    temp += i;
                }
            }
            if(temp == number){           
                return true;
            } else {            
                return false;
            }
        }
    
     public static void main(String[] args) {
        System.out.println("The Perfect numbers upto 1000 are :");
         for (int i=0;i<= 1000; i++){
             if(PerfectNumbers.isPerfectNumber(i)){
                System.out.println(i);
             }
         }              
     } 
    }
    
    /*
    @ Author 12CSE54
    @ Date 28.10.14
    */
    
    import java.util.*; 
    
    public class perfect {
        Scanner s = new Scanner(System.in);
    
        public void check() {
            System.out.println("Enter the number\n");
            int p = sc.nextInt();
            int temp = 0;
    
            for(int i = 1; i <= p / 2; ++i) {
                if (p % i == 0)
                    temp += i;
            }
    
            if (temp == p)
                System.out.println("It is a perfect number");
            else 
                System.out.println("It is not a perfect number");
        }
    
        public static void main(String args[]) {
            perfect p1 = new perfect();
            p1.check();
        }
    }