java學習第3天---3.2---面試題

java學習第3天---3.2---面試題


目錄




內容

1、測試毒藥

  有10瓶藥,裏面9瓶是無毒的,有1瓶是毒藥。測試用小老鼠,在喝藥之後7天內是沒事的,第8天和了毒藥的會死掉。現在有4只小老鼠,給你8天時間,怎麼測試出哪一瓶是毒藥?

首先編號:10瓶藥,二進制編號。小老鼠ABCD,小老鼠死活0,1,如下:

A B C D
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0

結果:舉例

A B C D
1 0 0 1

則第9瓶藥爲毒藥。

2、小數問題

  1. 2.0 - 1.0 = 1.0
  2. 2.0 - 1.1 = ? 0.89[9] 根據double精度確定

爲什麼?

在java中任何一個整數類型都可以用二進制精確表示出來,但是不代表任何一個小數也可以在有限的位數裏面顯示出來,1.1在存儲的時候出現數值位截取的情況,導致數值不正確

銀行存錢錢問題解決辦法?

  1. 有單位,單位縮小,數值擴大

    • 比如1.1元 ,轉位11角
  2. BigDecimal:大數值

     import java.math.BigDecimal;
    
     public class BigDecimalTest{
     	public static void main(String[] args){
     		BigDecimal b1 = new BigDecimal("2.0");
     		BigDecimal b2 = new BigDecimal("1.1");
     		BigDecimal b3 = b1.subtract(b2);
     		System.out.println(b3);
     	}
     }
     
     結果:
     0.9
    

後記

本項目爲參考某馬視頻開發,相關視頻及配套資料可自行度娘或者聯繫本人。上面爲自己編寫的開發文檔,持續更新。歡迎交流,本人QQ:806797785

前端項目源代碼地址:https://gitee.com/gaogzhen/vue-leyou
後端JAVA源代碼地址:https://gitee.com/gaogzhen/JAVA
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章