題目描述
將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。 輸入描述:輸出描述:多組資料,每行為乙個長度不超過30位的十進位製非負整數。 (注意是10進製數字的個數可能有30個,而非30bits的整數)
每行輸出對應的二進位制數。示例1
輸入01思路:38輸出0
1111000
輸入資料的儲存:c++中沒有能夠直接儲存30位10進製的資料結構,所以對於輸入資料的儲存使用陣列進行,char str[31]
多行輸入:使用while迴圈,輸入使用scanf("%s",str)!=eof
將字元陣列轉換為數字陣列,便於之後的運算
二進位制輸出可利用棧「先進後出」的特點進行儲存
大數的除法:思想還沒參悟透,就先死記硬背一下吧
for
(int i=
0;i<
strlen
(str);)
s.push
(remain)
;while
(num[i]==0
)//從第乙個非0開始
i++;}
完整**:
#include
#include
#include
#include
using namespace std;
int main()
stack s;
for(int i=
0;i<
strlen
(str);)
s.push
(remain)
;while
(num[i]==0
)//從第乙個非0開始
i++;}
while
(!s.
empty()
)}}
進製轉換 大數除法
我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?斐波那契數列 輸入乙個整數 int 輸出該數二進位制表示中1的個數。其中負數用補碼表示。負數的補碼,前導是一連串的1,int為32位 class solution n 2 el...
進製轉換 高精度除法 進製轉換
高精度除法運算 include include include using namespace std struct bign bign change char str return a bign divide bign a,int b,int r 去除前導0 while c.len 1 1 c.d...
大整數除法(進製轉換)
將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。多組資料,每行為乙個長度不超過30位的十進位製非負整數。注意是10進製數字的個數可能有30個,而非30bits的整數 每行輸出對應的二進位制數。985 21111261111011001 11010011 10001100110這道題...