每日一題 在這裡記錄,希望能堅持下去

2021-10-21 16:55:00 字數 1139 閱讀 8197

實現 int sqrt(int x) 函式。

計算並返回 x 的平方根,其中 x 是非負整數。

由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。

// 

class

solution

int left =1;

int right = x;

int mid =0;

while

(left <= right)

else

if(mid < x / mid)

else

}return right;}}

;

「short int」 型別,在計算機中一般用2個位元組(byte)來儲存,每個位元組由8位(bit)組成(1 byte = 8 bit),每位表示乙個二進位制數0或1,所以,"short int"型別能表示 個整數,以整數0為中點劃分為(-32768 ~ 32767),其表示範圍就是(-32768 ~ 32767)。而 「unsigned short int"型別,因為宣告了"unsigned」(無符號),所以其表示範圍是(0 ~ 65535)。

"unsigned short int"型別,可以表示整數50000,並且沒有溢位;而用"signed short int"型別來表示整數50000,就會出現整數溢位現象。

既然溢位了,那麼溢位後原來的數會變為多少呢?==分析如下:"signed short int"型別最大能表示的整數為32767,一旦超過了32767,就會像鐘錶或者汽車的里程表一樣,從起點重新開始計數,那麼,"signed short int"型別的起點是多少呢?是-32768!所以,32768就被表示為-32768了,那麼50000會被表示為多少呢?總共有(50000 - 32767) = 17233個數超過了範圍,這17233個數要從起點-32768開始計數,相當於從-32768開始往大了數17233個數。好了,下面我們開始來數數,第乙個數1對應於-32768,第二個數2對應於-32767,…,依次類推下去,最後答案是(-32768 + 17233) - 1 = -15536,之所以最後要減一是因為-32768對應的數是1而不是0。

哇難怪面試別人不要我,原來自己想的都是錯的。切記在c語言中5/2是2;5%2是1;

一切在這裡

我們播下種子,對天空祈求,滋潤植物,飲下雨水,再還給土壤,詛咒寒冷,朝著太陽跳舞,隨著微風起舞,由於經歷過的東西而流淚,在月亮的賠本下做夢。我們張開我們的雙手迎接另乙個可能充滿希望的季節,用祝福 石塊和老鷹的羽毛平衡壓力,帶著收穫回家。聽,鳥兒歡唱將地球喚醒。旋轉的宇宙突然開啟了種子爬往陽光的道路。...

關於幾個疑惑記錄在這裡

一 linux下的網絡卡驅動有固定的資料結構,比如struct net device 如果只是填充struct net device是不是就可以驅動乙個網絡卡呢?看了e1000網絡卡驅動的probe函式,發現主要的資料結構包括struct e1000 adapter和struct e1000 hw,...

logging日誌記錄模組,你想要的在這裡

在任何程式中,日誌記錄功能必不可少,它有可以幫助我們追溯程式執行歷史提供參考依據。今天要實現的日誌記錄功能,使用到了python的內建模組logging,它包含四個日誌等級,從嚴重程度上劃分為 critical error warning info debug。除此之外,我們需要知logging預設...