一天一道演算法題 405 數字轉換為十六進製制數

2021-09-22 20:08:38 字數 610 閱讀 3484

給定乙個整數,編寫乙個演算法將這個數轉換為十六進製制數。對於負整數,我們通常使用 補碼運算 方法。

注意:1、十六進製制中所有字母(a-f)都必須是小寫。

2、十六進製制字串中不能包含多餘的前導零。如果要轉化的數為0,那麼以單個字元』0』來表示;對於其他情況,十六進製制字串中的第乙個字元將不會是0字元。

3、給定的數確保在32位有符號整數範圍內。

4、不能使用任何由庫提供的將數字直接轉換或格式化為十六進製制的方法。

示例 1:

輸入:

26輸出:

"1a"

示例 2:

``輸入:

-1輸出:

「ffffffff」

``核心思想,使用位運算,每4位,對應1位16進製制數字。

使用0xf 獲取num的低4位,然後num右移四位

class solution 

string hex="0123456789abcdef";

string ans = "";

while(num!=0 && ans.length() < 8)

return ans;

}}

一天一道演算法題 樹狀陣列

題目 模板 樹狀陣列1 樹狀陣列和線段樹差不多,可以處理區間操作,但是處理不了太複雜的區間問題。不過 比線段樹簡潔很多很多!時間複雜度都為o logn 例如,區間 1,8 儲存方式如下 1 tree 1 num 1 001 001 2 tree 2 num 2 num 1 010 010 001 3...

一天一道演算法題 線段樹

題目 模板 線段樹1 rmq問題 range minimum maximum query 和求區間和的問題可以用暴力法做,時間複雜度為o n 2 用在本題會超時,所以我們選擇線段樹做。線段樹是一種用於區間操作的資料結構,用二叉樹構造。如圖。線段樹的每個節點代表了乙個區間。防止超時,用了lazy標記。...

一天一道演算法題 5 24 遞迴

我們每一天都應該比昨天更強一點 觀察下列式子 12 12 1 12 6 2 12 4 3 12 3 4 12 3 2 2 12 2 6 12 2 3 2 12 2 2 3 對於給定的n 計算n公有多少種不同的分解式?1 include 2 using namespace std 34 int cnt...