求一个整数的平方根(只保留整数)
- 需求:键盘输入一个大于等于2的整数x,计算并返回x的平方根,结果只保留整数部分,小数部分将被舍去
- 分析:平方根即为开根号的结果。
- 核心思想:i从1开始循环,依次用数字i的平方和x相比较
如果小于的,则继续比较;(可以采用以下两种方法中的一个)
1. 如果相等,那么当前数字i就是x的平方根;如果大于,则i前一个数字就是x的平方根的整数部分
2. 或者直接判断循环的数字i的平方是否大于x,如果大于,则i-1就是x的平方根的整数部分。 - 举例:4的平方根为2;
16的平方根为4;
17的平方根的整数部分为4;因为4 * 4 = 16 < 17,5 * 5 = 25 > 17
import java.util.Scanner;
public class FDemo {
public static void main(String[] args){
/*
* 求一个整数的平方根(只保留整数)
* 需求:键盘输入一个大于等于2的整数x,计算并返回x的平方根,结果只保留整数部分,小数部分将被舍去
* 分析:平方根即为开根号的结果。
* 举例:4的平方根为2;
* 16的平方根为4
* 17的平方根的整数部分为4;因为4 * 4 = 16 < 17,5 * 5 = 25 > 17
* */
/*
核心思想:i从1开始循环,依次用数字i的平方和x相比较
如果小于的,则继续比较;(可以采用以下两种方法中的一个)
1. 如果相等,那么当前数字i就是x的平方根;如果大于,则i前一个数字就是x的平方根的整数部分
2. 或者直接判断循环的数字i的平方是否大于x,如果大于,则i-1就是x的平方根的整数部分。
*/
//1.从键盘获取数字x
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字:");
int x = sc.nextInt();
//2. 从1开始循环比较
for (int i = 1; i <= x; i++) {
//3. 用i * i 跟x进行比较
if(i * i > x){
System.out.println(i-1+"是"+x+"平方根的整数部分!");
//找到平方根的整数部分以后,循环就可以停止了。后面的数字就不需要再进行比较了,提高代码的运行效率。
break;
}
}
/*另一种方法
//2. 从1开始循环比较
for (int i = 1; i <= x; i++) {
//3. 用i * i 跟x进行比较
if(i * i == x){
System.out.println(i+"就是"+x+"的平方根!");
//找到平方根以后,循环就可以停止了。后面的数字就不需要再进行比较了,提高代码的运行效率。
break;
}
else if(i * i > x){
System.out.println(i-1+"是"+x+"平方根的整数部分!");
//找到平方根的整数部分以后,循环就可以停止了。后面的数字就不需要再进行比较了,提高代码的运行效率。
break;
}
}
*/
}
}