Java 在进行任何平方运算之前,如何计算需要超过100万的平方数
此代码提示用户输入一个有效的整数,并重复对该整数进行平方运算,直到其超过100万。它也是类型安全的。在我的程序进行任何平方运算之前,有没有一种方法可以计算出一个整数超过100万所需的平方数Java 在进行任何平方运算之前,如何计算需要超过100万的平方数,java,Java,此代码提示用户输入一个有效的整数,并重复对该整数进行平方运算,直到其超过100万。它也是类型安全的。在我的程序进行任何平方运算之前,有没有一种方法可以计算出一个整数超过100万所需的平方数 import java.util.Scanner; public class Squaring{ public static void main (String [] args) { Scanner scan = new Scanner(System.in); long number; long num
import java.util.Scanner;
public class Squaring{
public static void main (String [] args) {
Scanner scan = new Scanner(System.in);
long number;
long number2;
int count = 0;
number = getInt("Enter an integer greater than 1:",scan);
while ( number <= 1) {
scan.nextLine();
System.out.println(number +" is not greater than 1.");
number = getInt("Enter an integer greater than 1:",scan);
}
number2 = number;
while ( number < 1000000) {
number = number * number;
System.out.println(number);
count++;
}
System.out.println(number2 + " exceeded 1,000,000 after "+ count + " squarings."); }
public static int getInt(String prompt, Scanner scan) {
int input;
System.out.println( prompt );
while ( !scan.hasNextInt() ) {
String garbage = scan.nextLine();
System.out.println( garbage + " is not valid input.\n" + prompt);
}
input = scan.nextInt();
return input;
}
}
import java.util.Scanner;
公共类平方{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
长数;
长数2;
整数计数=0;
number=getInt(“输入大于1的整数:”,扫描);
而(数字是。避免使用更优雅的代数方法,使用基于预计算和反向工作的if检查:
1e6
^ 0.5 = 1000 (1)
^ 0.5 ~= 31.6 (2)
^ 0.5 ~= 5.6 (3)
^ 0.5 ~= 2.4 (4)
^ 0.5 ~= 1.5 (5)
由于您指定了整数输入(并假定为正),因此可以很快获得一些边界。要超过一百万:
- 值为1或更小的值永远不会达到该值
- 值为2将需要5次平方运算
- 值3到5将进行4次平方运算
- 值6到31将进行3次平方运算
- 值32到999将进行2次平方运算
- 值1000到999999只需进行一次平方运算
现在,您的算法简化为一个简单的if检查。您需要编辑代码库中的问题部分在代码标记之外。呜呜,我刚刚修复了@Sand