java - 尝试显示整数因子,但遇到困难

标签 java class loops parameters constructor

我是编程新手,我不确定我哪里出了问题。

这是我的主要方法:

import java.util.*;
public class DisplayFactors
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.print("Enter a integer: ");
        String input1 = scan.nextLine();
        int input = Integer.parseInt(input1);

        FactorGenerator factor = new FactorGenerator(input);

        System.out.print(factor.getNextFactor());

        while (!factor.hasMoreFactors())
        {
            System.out.print(factor.getNextFactor());
        }
    }   
}

这是我的类(class):

public class FactorGenerator {

    private int num;
    private int nextFactor;

    public FactorGenerator(int n)
    {
        num = nextFactor = n;
    }

    public int getNextFactor()
    {
        int i = nextFactor - 1 ;

        while ((num % i) != 0)
        {
            i--;
        }
        nextFactor = i;
        return i;
    }

    public boolean hasMoreFactors()
    {
        if (nextFactor == 1)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
}

目前,如果我输入 15 作为整数,我只会得到一个因数,即 5,但我需要它来显示所有因数:15、5、3 和 1。我哪里出错了?

最佳答案

当您使用时

while (!factor.hasMoreFactors())
            {
                System.out.print(factor.getNextFactor());
            }

你说虽然没有更多因素,但将它们打印在屏幕上,但你需要 打印列表中存在的因素。

所以在 Java 中你将拥有:

while (factor.hasMoreFactors())
                {
                    System.out.print(factor.getNextFactor());
                }

关于java - 尝试显示整数因子,但遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095631/

相关文章:

python - 为什么在 OO 设置中迭代时无法删除列表元素?

c++ - 从单独的文件中读取每个字符?

java - 如何使用 Jsoup 从链接标签检索 URL

java - 从使用外部类的 ArrayList 获取变量

PHP访问父类变量

python - 给定一个包含许多列的数据框,有没有一种方法可以让两个循环只遍历其中的两列?

python - 从另一个类添加到 python 中的 for 循环

java - OneToOne外键保存问题

java - 为什么我们需要多个构造函数来在 Java 中定义二叉树?

Java:我如何确定初始化 block 中定义的本地类是否需要一个封闭实例来实例化?