我不明白为什么对于 49 以上的输入,如 54,倒数第四个输出打印(共 10 个)会有 <perfect square>
I do not get why for an input above 49 like 54 there will be a <perfect square> for the fourth last output printing (out of 10)
import java.util.*;
class FindingBiggestnumber {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("Input positive integer");
int a = sc.nextInt();
for (int q = 1; q <= 10; q++) {
int b = a/q;
if ( b == q) {
System.out.println("Perfect Square");
} else {
System.out.println("Not Perfect Square");
}
}
}
}
您好。我试图指出一个数字是否是整数 1-100 的完美平方。我不允许使用任何数学函数和布尔函数(尚未教授它们)。相反,我们需要使用控件 flows/looping.
来解决这个问题
我知道我的程序会给我 10 行 或 ,这是错误的,但我希望稍后解决。
现在,我遇到了一个错误问题,我不确定它在哪里。当我输入完美平方的整数时,输出是准确的。这同样适用于其他数字。然而,对于 49 以上的输入,如 54,输出的倒数第四行给出了 ,我对此感到非常困惑。我知道 variable == variable 在我阅读其他帖子时是可以接受的,但后来我不明白出了什么问题。
如有任何建议或反馈,我们将不胜感激!
问题是当你除以 54/7 时结果是 7,在这种情况下 b 也是 7。
您的方式可以改进,但如果您想保持这种方式,您可以添加除法余数等于零检查。
for (int q = 1; q <= 10; q++) {
int b = a/q;
if ( b == q && (a%q == 0 )) {
System.out.println(q + " Perfect Square");
} else {
System.out.println(q + " Not Perfect Square");
}
}
import java.util.*;
class FindingBiggestnumber {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("Input positive integer");
int a = sc.nextInt();
for (int q = 1; q <= 10; q++) {
int b = a/q;
if ( b == q) {
System.out.println("Perfect Square");
} else {
System.out.println("Not Perfect Square");
}
}
}
}
您好。我试图指出一个数字是否是整数 1-100 的完美平方。我不允许使用任何数学函数和布尔函数(尚未教授它们)。相反,我们需要使用控件 flows/looping.
来解决这个问题我知道我的程序会给我 10 行
现在,我遇到了一个错误问题,我不确定它在哪里。当我输入完美平方的整数时,输出是准确的。这同样适用于其他数字。然而,对于 49 以上的输入,如 54,输出的倒数第四行给出了
如有任何建议或反馈,我们将不胜感激!
问题是当你除以 54/7 时结果是 7,在这种情况下 b 也是 7。 您的方式可以改进,但如果您想保持这种方式,您可以添加除法余数等于零检查。
for (int q = 1; q <= 10; q++) {
int b = a/q;
if ( b == q && (a%q == 0 )) {
System.out.println(q + " Perfect Square");
} else {
System.out.println(q + " Not Perfect Square");
}
}