如何排序因素

时间:2014-12-30 05:16:43

标签: java

我对此非常陌生,而且我很难完成任务,所以任何人都可以帮忙。我在排序输出时遇到问题。这是代码。

            import java.util.Scanner;

            public class CJPSA5 {
                public static void main(String args[]){
                    Scanner in= new Scanner(System.in);
                    int num;
                    int m;
                    int r;
                    System.out.print("Please Enter your Number: ");
                    num = in.nextInt();

                    if (num <= 0) {
                        System.out.println("Not Accepted!");
                    } else {
                        System.out.println("The Factor of "+ num + " " + "are:"); 
                        for (m = 1; m <= num; m++) {
                            if (num % m == 0) {
                                System.out.print(m + "\t");
                                System.out.print(j + "\t");
                            }
                        }
                    }
                }
            }
        }
        System.out.println();
        System.out.println("Thank You!");
    }
}

预期输出是这样的。

Please Enter your Number: 24
The Factor of 24 are:
1   -1   2   -2   3   -3   4   -4   6   -6   8   -8   12  -12  24  -24 

现在我想要的输出是按

排序
1 2 3 4 6 8 12 24 -1 -2 -3 -4 -6 -8 -12 -24

我真的希望有人可以帮助我,并为我错误的语法表示抱歉。

3 个答案:

答案 0 :(得分:1)

您可以将值存储在java中的数组或arraylist中。并使用排序方法。

你可以像Tapan Anand那样建议,不需要使用排序。

答案 1 :(得分:1)

首先,您的代码有很多编译错误。

无需对数组进行排序。只将积极因素存储在数组中。

您的数组将按照您运行循环的方式自行排序。只需第二次循环遍历每个数字的数组打印负片,即可打印负面因素。

例如: 输入:14

数组已1 2 7 14,现在也已打印这些值。

然后循环浏览并打印:-1 -2 -7 -14

答案 2 :(得分:1)

首先在列表中收集您的解决方案:

在顶部:

List<Integer> factors = new ArrayList<Integer>();

然后在循环中:

if (num % m == 0)
    factors.add(m);

然后循环:

Collections.sort(factors);

然后打印:

for (int factor : factors) {
    System.out.println(factor + "\t"); /// or whatever