數字相同,運算結果不一樣的小問題總結

2021-10-21 19:01:40 字數 603 閱讀 4719

long lightspeed =

299792458

;long distance = lightspeed*

31536000

; system.out.

println

(distance)

;

該**執行結果為9454254955488000

long distance =

299792458

*31536000

; system.out.

println

(distance)

;

如果把中間變數取消,直接想*兩數,結果為1144840960

產生差異的原因是,數值預設為int型別,運算結果超出int的取值範圍就會自動閹割,即使變數為long,但在賦值前就已經閹割了,加了long中間變數則不會出現該問題。

解決是,較大數字運算時,在數字後加l

long distance =

299792458

*31536000

;

不一樣又不一樣的 木板接水

空地上豎立著n個從左到右排列的木板,它們可以把水擋住,但溢位最邊上木板的水將會流到空地上。已知木板間距都是單位1,現給定每個木板的高度,請求出總共能接住的水量?說明一點,這裡只考慮間距 寬度 和高度,不考慮第三個維度,因此水量是平方單位。木板高度分別是2,1,3,那麼我們可以接住2 2 4平方單位的...

不一樣的簡潔

less is more是設計領域對現代主義的解讀,主張功能決定形式 forms follow function 廢除一切不必要的裝飾以及重複的資訊,它的基礎就是理性主義。如果它被解讀成 要簡單,清晰,明確 應該說是不夠完全的,因為只看到了表面的 less 卻忽視了實質的 more 少即是多 les...

不一樣的for迴圈

提到for迴圈,我們肯定就想到一種寫法 for int x 0 x 3 x 這是一種很常見的寫法,但是使用for迴圈,我們都形成了一種固化的思維,其實for迴圈也可以很不一樣。for迴圈的格式是這樣的 for 初始化表示式 迴圈條件表示式 迴圈後的操作表示式 如果我們這樣寫乙個for迴圈 編譯沒有通...