Java-3或更多不同的数字
在我的代码中,用户输入他们想要测试的数字,然后输入数字。如果一个数字可以被3个不同的数字除,它将打印一个“1”。否则,它将打印一个“0”。当我运行代码时,它只打印“0”。我试着修复一些括号,看看语法是否有问题Java-3或更多不同的数字,java,arrays,distinct-values,Java,Arrays,Distinct Values,在我的代码中,用户输入他们想要测试的数字,然后输入数字。如果一个数字可以被3个不同的数字除,它将打印一个“1”。否则,它将打印一个“0”。当我运行代码时,它只打印“0”。我试着修复一些括号,看看语法是否有问题 int distinct = 0; int T = input.nextInt(); int [] nums = new int [T]; for (int n : nums) {
int distinct = 0;
int T = input.nextInt();
int [] nums = new int [T];
for (int n : nums) {
distinct = 0;
n = input.nextInt();
for (int m = nums.length; m == 0; m--) {
if (n % m == 0) {
distinct++;
}
}
if (distinct < 3) {
System.out.println("0");
}
else
System.out.println("1");
}
}
}
它返回:
0
0
0
应在何时返回:
在for循环中,使用
int m=nums.length
启动变量
由于用户在开始时将nums
的长度定义为3,因此在检查所有小于此值的正整数之前,您检查的第一个因子是3。因此,对于n=4
您选中3、2和1;只有2和1是如此不同的因子,因此将是2。我猜想这应该是int m=n
for (int m = n; m == 0; m--) {
if (n % m == 0) {
distinct++;
}
}
假设忽略负整数(因为这意味着可以考虑负整数),唯一失败的时间是当n为1或n为素数时;1和n本身始终是一个因素。因此,您可以忽略对这些值的检查
0
0
1
for (int m = n; m == 0; m--) {
if (n % m == 0) {
distinct++;
}
}