在本论坛上提到的其他几个问题,您将如何找到数字的因素。
注意:我试图了解其他人写的内容,请不要重复已经给出的答案
我的代码现在正在运行,例如,数字6返回: 由1.0计算的6.0是6.000 6.0的因子是3.000 3.0中的因子3.0是2.000 6.0的因子是1.500 6.0的因子是1.200 6.0的因子为1.000
有没有办法删除所有十进制数? 我认为关于“for”语句有点夸张,但我真的不知道如何使用它们。
当前代码:
public class Factoring {
public static void main(String[] args) {
double input;
double factor = 1;
double factorNum;
System.out.println("This application calculates every factor of a given number!"
+ "\nPlease enter a number: ");
input = TextIO.getlnDouble();
System.out.println("Original Number: " + input);
while (input >= factor){
factorNum = input / factor;
System.out.print("\n" + input + " factored by " + factor + " is ");
System.out.printf("%.3f", factorNum);
factor++;
}
}
}
答案 0 :(得分:6)
使用int
代替double
。当您使用double
或float
时,您会获得小数。
所以你的这个:
double input;
double factor = 1;
double factorNum;
应该是:
int input;
int factor = 1;
int factorNum;
SSCCE
public class Factoring {
public static void main(String[] args) {
int number = 15;
int factorNumber = 1;
while(factorNumber <= number){
if(number % factorNumber == 0){
System.out.println(factorNumber + " is a factor of " + number);
}
factorNumber ++;
}
}
}
结果:
1 is a factor of 15
3 is a factor of 15
5 is a factor of 15
15 is a factor of 15
<强>解释强>
考虑将数字15除以2,就像在Math类中一样。
15 = 2 * 7.5 + 0.你的商是:7.5
在编程7.5和7是不同的。一个是浮点号
另一个是我们称之为的整数或整数。
要存储浮点数,请使用 float 或 double 数据类型。他们
保留小数点后的数字。
另一方面, int 和 long 是整数,因此他们不保留
小数位后面的数字。他们不围绕他们;他们截断了它。
试试这个:
double withDecimals = 7.5d;
int withoutDecimals = 7.5d;
并打印出来。
看到区别?
答案 1 :(得分:0)
如果因子的输入数字%不等于零,则将其从因子列表中删除。我在这里假设你在谈论像“1.5”这样的答案,这些答案在技术上不是输入数字的因素。
答案 2 :(得分:0)
使用int并使用%
检查余数int factor = 6;
int input = 1;
while(input <= factor) {
if(f % i == 0){
System.out.println(i + " is a factor");
}
i++;
}
答案 3 :(得分:0)
而是你使用double作为你的数字,最好更改为integer ..integer是单个数字,double是十进制数字..
int input;
int factor = 1;
int factorNum;
并从
更改System.out.printf("%.3f", factorNum);
到
System.out.printf("%.0f", factorNum);
答案 4 :(得分:0)
我将因子存储在ArrayList
中 int s = /* Your number or get from user */;
ArrayList<Integer>integers = new ArrayList<>();
for (int i = 1 ; i <= s ; i++){
if(s%i == 0){
integers.add(i);
/* just for printing the factors */ System.out.println(i);
}
}