Функция перевода из 10-ой системы счисления в любую в пределах 10:
def from10ss(x, ss):
t = 1
d = 0
while x > 0:
d = d + (x % ss) * t
t = t * 10
x = x // ss
return d
osn = int(input())
print(from10ss(int(input()), osn))
Функция перевода в 10-ую систему счисления из любой в пределах 10:
def to10ss(x, ss):
r = 0
d = 0
while x > 0:
d = d + x % 10 * ss ** r
r += 1
x //= 10
return d
osn = int(input())
print(to10ss(int(input()), osn))
Функция перевода в 10-ую систему счисления из 2-ной системы счисления (на вход подаётся строка):
def bin2dec(s):
i = 0
d = 0
while len(s) > 0:
d = d + int(s[-1]) * 2 ** i
i = i + 1
s = s[:-1]
return d
Функция перевода из римской системы счисления в 10-ую систему счисления:
def romanToInt(s: str) -> int:
sr = s[::-1]
dx, dc, dm = 0, 0, 0
d = 0
for bu in sr:
if bu == 'I':
if dx == 1:
d -= 1
dx = 0
else:
d += 1
elif bu == 'V':
dx = 1
d += 5
elif bu == 'X':
dx = 1
if dc == 1:
d -= 10
dc = 0
else:
d += 10
elif bu == 'L': # 50
dc = 1
d += 50
elif bu == 'C': # 100
dc = 1
if dm == 1:
d -= 100
dm = 0
else:
d += 100
elif bu == 'D': # 500
dm = 1
d += 500
elif bu == 'M': # 1000
dm = 1
d += 1000
# print(bu, d)
return d