國立清X大學藝X學院學士班 115 學年度「計X機程式設計」課程的其中一位助教,是一名輔系資工系的大四學生。
他原本以為寫程式就是快樂地敲敲鍵盤,沒想到資工系居然逼他算數學!
二進位、log、矩陣、指數……什麼都來!
助教被逼瘋了!
於是,他決定把這股歪風帶回藝術學院,要求大家將一串二進位數字轉換成十進位整數。
已知二進位數字的每一位,從右至左分別代表 2⁰, 2¹, 2²……
將每一位的數字乘上該位置所對應的 2 的冪次方,再將所有結果相加,即可得到對應的十進位數值。
例如,二進位數字 1011 可以表示為:
1 × 2³ + 0 × 2² + 1 × 2¹ + 1 × 2⁰
= 8 + 0 + 2 + 1
= 11
因此,二進位數字 1011 轉換成十進位後為 11。
現在給定一串長度為 r 的二進位數字 s,請幫助已經被資工系逼瘋的助教,計算它所代表的十進位數值。
輸入共兩行。
第一行包含一個正整數:
r
表示二進位數字共有幾位。
第二行包含一串長度為 r 的二進位字串:
s
其中 s 中的每一個字元皆為 0 或 1。
Note:
1 ≤ r ≤ 30
輸出一行:
d
其中 d 為二進位數字 s 轉換後的十進位結果。
請務必在輸出結果後加上換行字元 ("\n")。
二進位數字從最右邊開始,第 1 位代表 2⁰,第 2 位代表 2¹,依此類推。
可以將二進位數字以 char 型態存入 array,再逐位計算。
char 型態的 '0' 與 '1' 是字元,可以使用 if 判斷目前的字元是否為 '1',再決定是否將該位數所代表的值加入答案。
不需要使用任何內建的進位轉換函式。