Java黑皮书课后题第3章:**3.22(几何:点是否在圆内)编写程序,提示用户输入一个点(x,y),然后检查这个点是否在以(0,0)为圆心、半径为10的圆内
**3.22(幾何:點(diǎn)是否在圓內(nèi))編寫程序,提示用戶輸入一個點(diǎn)(x,y),然后檢查這個點(diǎn)是否在以(0,0)為圓心、半徑為10的圓內(nèi)
- 題目
- 題目概述
- 課本提示與舉例、運(yùn)行示例
- 破題
- 代碼
- 兩個浮點(diǎn)數(shù)的比較
題目
題目概述
**3.22(幾何:點(diǎn)是否在圓內(nèi))編寫程序,提示用戶輸入一個點(diǎn)(x,y),然后檢查這個點(diǎn)是否在以(0,0)為圓心、半徑為10的圓內(nèi)
課本提示與舉例、運(yùn)行示例
提示:如果一個點(diǎn)到(0,0)的距離小于半徑即在圓內(nèi),兩點(diǎn)之間距離公式(已處理):Math.pow( (Math.pow(x2-x1, 2) + Math.pow(y2-y1, 2)), 0.5)
例如:(4,5)是圓內(nèi)一點(diǎn),(9, 9)是圓外一點(diǎn)(圓:(0,0)圓心半徑為10)
Enter a point with two coordinates: 4 5
Point (4.0, 5.0) is in the circle
Enter a point with two coordinates: 9 9
Point (9.0, 9.0) is not in the circle
破題
先用上面公式判斷是否在圓內(nèi)
輸出點(diǎn)的坐標(biāo)
難點(diǎn)在輸出語句中的如何控制not的輸出:打標(biāo)(boolean標(biāo)記)(打標(biāo)已經(jīng)在之前的博文中用了多次,歡迎關(guān)注專欄)
除此之外,兩個浮點(diǎn)數(shù)之間的比較也頗為有趣,詳細(xì)在代碼下面
代碼
import java.util.Scanner;public class Test3_22 {public static void main(String[] args) {// 獲取點(diǎn)坐標(biāo)Scanner input = new Scanner(System.in);System.out.println("Enter a point with two coordinates: ");double x2 = input.nextDouble(), y2 = input.nextDouble();// 判斷是否在圓內(nèi)double x1 = 0.0, y1 = 0.0;double distance = Math.pow( (Math.pow(x2-x1, 2) + Math.pow(y2-y1, 2)), 0.5);double radius = 10.0;final double EPSILON = 0.001;boolean bool = false;if((radius - distance) > EPSILON){// 這里認(rèn)為點(diǎn)在圓內(nèi)bool = true;}// 輸出結(jié)果if(bool){System.out.println("Point (" + x2 + ", " + y2 + ") is in the circle");}else{System.out.println("Point (" + x2 + ", " + y2 + ") is not in the circle");}} }兩個浮點(diǎn)數(shù)的比較
參考資料:
https://blog.csdn.net/bupa900318/article/details/80553695
博主沒有聯(lián)系到,沒有允許轉(zhuǎn)載部分內(nèi)容
如果感興趣可以看一下比較方法
本題中使用了第一個方法:兩值相減與某一非常小的浮點(diǎn)數(shù)比較大小
總結(jié)
以上是生活随笔為你收集整理的Java黑皮书课后题第3章:**3.22(几何:点是否在圆内)编写程序,提示用户输入一个点(x,y),然后检查这个点是否在以(0,0)为圆心、半径为10的圆内的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第3章:**3.21
- 下一篇: Java黑皮书课后题第3章:**3.23