二進位製煉表轉整數

2021-10-08 03:54:27 字數 1513 閱讀 5286

給你乙個單鏈表的引用結點 head。鍊錶中每個結點的值不是 0 就是 1。已知此煉表是乙個整數數字的二進位制表示形式。

請你返回該鍊錶所表示數字的 十進位制值 。

示例 1:

輸入:head = [1,0,1]

輸出:5

解釋:二進位制數 (101) 轉化為十進位制數 (5)

示例 2:

輸入:head = [0]

輸出:0

示例 3:

輸入:head = [1]

輸出:1

示例 4:

輸入:head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]

輸出:18880

示例 5:

輸入:head = [0,0]

輸出:0

鍊錶不為空。

鍊錶的結點總數不超過 30。

每個結點的值不是 0 就是 1。

二進位制轉為十進位制的時候,先把二進位制從高位(最左邊的「1」)開始按從上到下的順序寫出 ,第一位就是最後的商 「2 2 = 1 餘0 「,餘數肯定是加零。其他位數如果有」1「(原來的餘數),就先乘以」2「再加」1「。

下面就是從第一位開始乘以2加餘數的方法算回去

例如 100101110

1…………0 2+1=1…………餘數為1

0…………1 2+0=2………… 餘數為0

0 …………2 2+0=4 ………… 餘數為0

1 …………4x2+1=9……………… 餘數為1

0…………9x2+0=18 ……………… 餘數為0

1 …………18 2+1=37 …………餘數為1

1…………… 37 2+1=75…………餘數為1

1………………75 2+1=151………… 餘數為1

0………………151 2+0=302 ………… 餘0

所以得到十進位制數302

另:128+0*27+026+1*25+024+1*23+122+1*21+0*2^0=302

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

return sum;}}

;

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

while

(!s.

empty()

)int sum =0;

for(

int i=

0;isize()

;i++

)return sum;}}

;

1290 二進位製煉表轉整數

鏈結 給你乙個單鏈表的引用結點 head。鍊錶中每個結點的值不是 0 就是 1。已知此煉表是乙個整數數字的二進位制表示形式。請你返回該鍊錶所表示數字的 十進位制值 示例1 輸入 head 1,0,1 輸出 5 解釋 二進位制數 101 轉化為十進位制數 5 示例2 輸入 head 0 輸出 0示例3...

1290 二進位製煉表轉整數

給你乙個單鏈表的引用結點 head。鍊錶中每個結點的值不是 0 就是 1。已知此煉表是乙個整數數字的二進位制表示形式。請你返回該鍊錶所表示數字的 十進位制值 輸入 head 1,0,1 輸出 5 解釋 二進位制數 101 轉化為十進位制數 5 示例 2 輸入 head 0 輸出 0 示例 3 輸入 ...

1290 二進位製煉表轉整數

題目描述 給你乙個單鏈表的引用結點 head。鍊錶中每個結點的值不是 0 就是 1。已知此煉表是乙個整數數字的二進位制表示形式。請你返回該鍊錶所表示數字的 十進位制值 示例 1 輸入 head 1,0,1 輸出 5 解釋 二進位制數 101 轉化為十進位制數 5 示例 2 輸入 head 0 輸出 ...