DS佇列 堆疊 數制轉換

2021-10-01 08:12:13 字數 1085 閱讀 1325

題目描述

對於任意十進位制數轉換為k進製,包括整數部分和小數部分轉換。整數部分採用除k求餘法,小數部分採用乘k取整法例如x=19.125,求2進製轉換

整數部分19, 小數部分0.125

19 / 2 = 9 … 1 0.125 * 2 = 0.25 … 0

9 / 2 = 4 … 1 0.25 * 2 = 0.5 … 0

4 / 2 = 2 … 0 0.5 * 2 = 1 … 1

2 / 2 = 1 … 0

1 / 2 = 0 … 1

所以整數部分轉為 10011,小數部分轉為0.001,合起來為10011.001

提示整數部分可用堆疊,小數部分可用佇列實現

注意:必須按照上述方法來實現數制轉換,其他方法0分

輸入第一行輸入乙個t,表示下面將有t組測試資料。

接下來每行包含兩個引數n和k,n表示要轉換的數值,可能是非整數;k表示要轉換的數制,1對於每一組測試資料,每行輸出轉換後的結果,結果精度到小數點後3位

輸出小數點後幾位的**如下:

#include

#include

using namespace std;

int main()

樣例輸入

2

19.125 2

15.125 16

樣例輸出
10011.001

f.200

#include #include #include using namespace std;

int main()

numint.push(nint%k);

//小數轉換

int i=0;

while (i<3)

char output[6]=;

//輸出整數部分

while (!numint.empty())

cout<<'.';

//輸出小數部分

while (!numdouble.empty())

cout<}

return 0;

}

DS佇列 堆疊 數制轉換

對於任意十進位制數轉換為k進製,包括整數部分和小數部分轉換。整數部分採用除k求餘法,小數部分採用乘k取整法例如x 19.125,求2進製轉換 整數部分19,小數部分0.125 19 2 9 1 0.125 2 0.25 0 9 2 4 1 0.25 2 0.5 0 4 2 2 0 0.5 2 1 1...

DS佇列 堆疊 數制轉換

題目 問題 b ds佇列 堆疊 數制轉換 時間限制 1 sec 記憶體限制 128 mb 提交 340 解決 285 提交 狀態 討論版 題目描述 對於任意十進位制數轉換為k進製,包括整數部分和小數部分轉換。整數部分採用除k求餘法,小數部分採用乘k取整法例如x 19.125,求2進製轉換 整數部分1...

DS之棧實現數制轉換

要想實現對於乙個非負十進位制整數轉換為不大於十進位制的數的方法有很多,其中乙個基於棧的先進後出的固有特性實現的。在進行進製轉換的過程中,由於基於公式 n n div d d n mod d 其中 div為整除運算,mod為求餘運算 的計算過程是從低位到高位順序產生所要轉換進製數的各個數字,而輸出的時...