十進位制小數轉N進製(python)

2021-10-09 11:34:56 字數 1598 閱讀 4868

題目描述

編寫程式實現將任意10進製正小數m轉換成n進製的正小數,小數點後保留10位小數。

輸入輸入包含兩個數m,n,用空格隔開。輸入包含多組測試,當m,n都為0時輸入結束。

limits:

0.0000009輸出

輸出10進製正小數m的n進製小數。結果保留10位小數。

樣例輸入樣例 1

0.795 3

0 0

輸出樣例 1

0.2101101122
先上**:

import math

deffunc()

:def

trans

(num, specified_format)

->

str:

result =

'' integer = math.floor(num)

decimal = num - integer

while integer >= specified_format:

remainder = integer % specified_format

integer /= specified_format

result =

str(remainder)

+ result

result +=

str(integer)

result +=

'.' counter =

0while counter <10:

decimal *= specified_format

result +=''.

format

(decimal)

.split(

'.')[0

] decimal -= math.floor(decimal)

counter +=

1return result

while

true

: m, n =

map(

float

,input()

.strip(

).split())

if m ==

0and n ==0:

break

print

(trans(m, n)

)if __name__ ==

'__main__'

: func(

)

知識點

整數部分和小數部分的進製轉換

取消預設使用的使用科學記數法 解析

小數的進製轉換要分成整數部分和小數部分分別進行。整數部分很簡單,就是對目標進製數取模得到餘數新增到結果中,然後再除。而小數部分就要乘目標進製數,將整數部分新增到結果中,再對剩餘的小數部分重複進行此操作,直到得到0或達到目標精度。

做題時遇到的問題是,如果decimal值比較小,如0.000001,那麼就會被表示為1e-6,而不是純數字。這個問題可以通過format解決。』』.format(num),就可以用純數字表示。

C 十進位制小數轉為N進製方法

十進位制小數轉換為n進製小數的方法為 乘n取整法 所謂乘n取整法是將十進位制的小數乘以n,得到的整數部分作為小數點後第一位。剩餘的小數部分再乘以n,得到的整數部分作為小數點後第二位。直到剩餘小數部分為0,或達到一定精度為止。如十進位制的0.54轉換為16進製制的過程為 0.55 16 8.8 8 由...

m進製轉十進位制

題目描述 description 將m進製數n轉化成乙個十進位制數 m 16 題目保證轉換後的十進位制數 100 輸入描述 input description 共一行n和m 輸出描述 output description 共乙個數 表示m進製的n化成十進位制的數 樣例輸入 sample input ...

十進位制數轉N進製c 實現

編寫乙個演算法,將乙個非負的十進位制整數 n轉換為另乙個基數為b的 b進製整數。include include using namespace std 所要的十進位制轉 b進製的函式 void shift int b,int before char b num b if b 10 定義好大於 10的...