Java 创建因子生成器程序
好的,我在学校已经做了一个星期的这个项目,我似乎不明白为什么大多数数字都有效,但由于某些原因,像36或108这样的数字不起作用。我想知道是否有人能找出原因。谢谢大家!Java 创建因子生成器程序,java,Java,好的,我在学校已经做了一个星期的这个项目,我似乎不明白为什么大多数数字都有效,但由于某些原因,像36或108这样的数字不起作用。我想知道是否有人能找出原因。谢谢大家! public class FactorGenerator { public FactorGenerator(int a) { number = a; factor = 2; } public int nextFactor() // Finds the next facto
public class FactorGenerator {
public FactorGenerator(int a) {
number = a;
factor = 2;
}
public int nextFactor() // Finds the next factor
{
number = (number / factor);
return factor;
}
public boolean hasMoreFactors() // Uses loops and decisions to find if there
// are more factors
{
boolean hasMoreFactors = false;
done = false;
if (factor < number) {
while (!done) {
if (number % factor != 0) {
factor++;
}
else {
done = true;
hasMoreFactors = true;
}
}
}
return hasMoreFactors;
}
private int number; // Instance Fields
private int factor;
private boolean done;
}
公共类FactorGenerator{
公共发电商(INTA){
数字=a;
系数=2;
}
public int nextFactor()//查找下一个因子
{
数字=(数字/系数);
回报系数;
}
public boolean hasMoreFactors()//使用循环和决策查找是否存在
//还有更多的因素
{
布尔hasMoreFactors=false;
完成=错误;
如果(系数<数字){
而(!完成){
如果(数字百分比系数!=0){
因子++;
}
否则{
完成=正确;
hasMoreFactors=true;
}
}
}
回归因素较多;
}
私有整数;//实例字段
私人智力因素;
私有布尔完成;
}
你很接近!您不需要在nextFactor()
中修改number
变量,只需增加因子
变量:
public int nextFactor()
{
return factor++;
}
进行更改,运行以下命令:
FactorGenerator gen = new FactorGenerator(36);
while (gen.hasMoreFactors())
System.out.println(gen.nextFactor());
收益率:
二,
三,
四,
六,
九,
十二,
十八
三十六
此输出忽略系数
1
。如果在FactorGenerator
构造函数中将factor
初始化为1
,您将得到完整的因子列表。您会得到什么错误?如果没有错误,您会得到什么输出?您希望得到什么输出?显示如何调用这些方法对于36,这将给出2,2,3,3
。您想要的输出是其他东西吗?这些都是因素,对吗?