我想编写一个java程序来找到小于或等于给定数字的最大平方数。
例如,当我
10
作为输入的数字插入时,答案是9
因为9
是最大的平方10
我理解循环,但我无法弄清楚这个背后的逻辑。
像下面这样的东西如何让你继续......
double x = 20;
double root = Math.sqrt(x);
int t = (int)root;
System.out.println("Root is:" + root + " and answer is :" + t*t);
public static void main(String argv[]){
System.out.println(largestSquareLessOrEqualTo(145));
}
public static int largestSquareLessOrEqualTo(int limit){
int i = 0;
for (; i <(int)Math.sqrt(limit); i++){
}
return(i*i);
}
这是使用循环执行此操作的方法
int n=10; //This is your Number
int i = 0;
for(i=n;i>=1;i--)
if((int)Math.sqrt(i)*(int)Math.sqrt(i)==i)
break;
System.out.println(i);
以下是它的工作原理:-
循环从n
(您的号码)到1
。i
然后,它检查 的平方根是否n
为。如果是,则,并在屏幕上打印 的值。1
perfect square
breaks
loop
i