java我不明白为什么对于49以上的输入,比如54,在最后的第四次输出打印中会有一个<perfect square>(共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的完美平方。我不允许使用任何数学函数和布尔函数(它们还没有教过)。相反,我们需要使用控制流/循环来解决这个问题
我知道我的课程会给我10行<;非完美正方形>;或<;完美正方形>;,这是错误的,但我希望以后解决它
现在,我面临着一个bug问题,我不知道在哪里。当我输入完全平方的整数时,输出是精确的。其他数字也是如此。然而,对于高于49的输入(如54),输出的最后第四行给出<;完美正方形>;这让我非常困惑。从我阅读的其他帖子来看,我知道variable==variable是可以接受的,但我不明白那是怎么回事
如有任何建议或反馈,将不胜感激
# 1 楼答案
问题是当你除以54/7,结果是7,在这个例子中,b也是7。 你的方法可以改进,但如果你想保持这种方式,你可以加上除法余数等于零检查