進製轉換(大數除法 棧)

2021-10-04 04:28:47 字數 1055 閱讀 1651

題目描述

將乙個長度最多為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這道題...