15057 - C for Computer Science   

Description

國立清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,請幫助已經被資工系逼瘋的助教,計算它所代表的十進位數值。

 

Input

輸入共兩行。

第一行包含一個正整數:

r

表示二進位數字共有幾位。

 

第二行包含一串長度為 r 的二進位字串:

s

其中 s 中的每一個字元皆為 0 或 1。

 

Note:

1 ≤ r ≤ 30

 

Output

輸出一行:

d

其中 d 為二進位數字 s 轉換後的十進位結果。

請務必在輸出結果後加上換行字元 ("\n")。

 

Note:

  1. 二進位數字從最右邊開始,第 1 位代表 2⁰,第 2 位代表 2¹,依此類推。

  2. 可以將二進位數字以 char 型態存入 array,再逐位計算。

  3. char 型態的 '0' 與 '1' 是字元,可以使用 if 判斷目前的字元是否為 '1',再決定是否將該位數所代表的值加入答案。

  4. 不需要使用任何內建的進位轉換函式。

Sample Input  Download

Sample Output  Download

Tags




Discuss