演算法筆記 Problem C 進製轉換

2021-10-04 18:23:36 字數 858 閱讀 1399

題目描述

將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。
輸入
多組資料,每行為乙個長度不超過30位的十進位製非負整數。

(注意是10進製數字的個數可能有30個,而非30bits的整數)

輸出
每行輸出對應的二進位制數。
樣例輸入
985

2111126

樣例輸出
1111011001

11010011

10001100110

思路:

30位的十位數如果採用普通整形儲存是存不下的,因此只能用陣列來儲存每一位數字,由於是轉換成二進位制,除基取餘法可以實現,餘數只有0和1,除法也只需要分別拿有效資料第一位來判斷奇偶,奇數的話就給下一位加10。

**:

#include

intmain()

int j =0;

//j為當前第乙個有效位置

do n_int[i]/=

2;}for

(; j < lenth &&

!n_int[j]

; j++);

//尋找新的有效位置

}while

(j < lenth)

;for

(int i = num -

1; i >-1

; i--

)printf

("\n");

}return0;

}

16進製制轉2進製再轉8進製

藍橋杯刷題計畫,由於最大有十萬位16進製制數,所以直接選擇整形是無法儲存的,考慮到16進製制,8進製,2進製之間的關係,所以我們選擇,先轉2進製,再有2進製轉換為8進製。由於,一位16進製制數對應4位2進製數,一位8進製數對應3位2進製數,於是,我們可以用先用map進行乙個對映儲存,便於直接取用。另...

十六進製制轉八進位制演算法

兩種解法 都需要中轉一次 第一種 十六轉十,十轉八.由於執行多次迴圈,當資料很大時,超時.include includeusing namespace std long long lc int a,int n 10 8 int a 10 int l sum int i 0 while l for i...

演算法訓練 十進位制轉2進製輸出

資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 編寫遞迴函式,實現將乙個十進位制的正整數以二進位制的形式輸出。注 不考慮符號位,僅從二進位制數不為0的最高位開始輸出。輸入格式 乙個十進位制正整數 輸出格式 該整數對應的二進位制數 樣例輸入 乙個滿足題目要求的輸入範例。例 96 樣...