#python-3.x #algorithm
#python-3.x #алгоритм
Вопрос:
Как мне преобразовать число с основанием 5 в десятичное, десятичное число в число с основанием 5, добавление чисел с основанием 5 и умножение чисел с основанием 5 с использованием функций def:
gumatj_to_decimal(a)
, которое преобразует число Gumatj в десятичноеdecimal_to_gumatj(a)
, которое преобразует десятичное число в Gumatjgumatj_add(a, b)
, что добавляет 2 числа Gumatjgumatj_multiply(a, b)
, что кратно 2 числам Gumatj
choice = input ("Choose test:n")
action = choice[:1]
print ("calling function")
if action == 'g' or action == 'd':
num = int(choice[2:])
if action == 'g':
answer = gumatj.gumatj_to_decimal (num)
else:
answer = gumatj.decimal_to_gumatj (num)
elif action == 'a' or action == 'm':
num1, num2 = map (int, choice[2:].split(" "))
if action == 'a':
answer = gumatj.gumatj_add (num1, num2)
else:
answer = gumatj.gumatj_multiply (num1, num2)
print ("called function")
print (answer)
Пример ввода-вывода:
Choose test:
d 12
calling function
called function
22
Пример ввода-вывода:
Choose test:
g 22
calling function
called function
12
Пример ввода-вывода:
Choose test:
a 12 14
calling function
called function
31
Пример ввода-вывода:
Choose test:
m 3 4
calling function
called function
22
Ответ №1:
Попробуйте этот код:
import numpy
def gumatj_to_decimal(num):
return int(str(num), 5)
def decimal_to_gumatj(num):
return numpy.base_repr(num, 5)
def gumatj_add(num1, num2):
return decimal_to_gumatj(gumatj_to_decimal(num1) gumatj_to_decimal(num2))
def gumatj_multiply(num1, num2):
return decimal_to_gumatj(gumatj_to_decimal(num1) * gumatj_to_decimal(num2))
choice = input("Choose test:n")
action = choice[:1]
print("calling function")
if action == 'g' or action == 'd':
num = int(choice[2:])
if action == 'g':
answer = gumatj_to_decimal(num)
else:
answer = decimal_to_gumatj(num)
elif action == 'a' or action == 'm':
num1, num2 = map(int, choice[2:].split(" "))
if action == 'a':
answer = gumatj_add(num1, num2)
else:
answer = gumatj_multiply(num1, num2)
print("called function")
print(answer)
Пример вывода:
Choose test:
d 12
calling function
called function
22
Choose test:
g 22
calling function
called function
12
Choose test:
a 12 14
calling function
called function
31
Choose test:
m 3 4
calling function
called function
22
Объяснение:
- Преобразование числа с основанием 5 в десятичное:
Python int
может преобразовывать строки с любым основанием в целое число:
def gumatj_to_decimal(num):
return int(str(num), 5)
- Преобразование десятичного числа в основание 5:
Numpy base_repr
может это сделать:
def decimal_to_gumatj(num):
return numpy.base_repr(num, 5)
- Добавление двух чисел с основанием 5:
Сначала преобразуйте их в десятичное число, добавьте их и преобразуйте обратно в основание 5:
def gumatj_add(num1, num2):
return decimal_to_gumatj(gumatj_to_decimal(num1) gumatj_to_decimal(num2))
- Умножение двух чисел с основанием 5:
Сначала преобразуйте их в десятичное число, умножьте, преобразуйте их обратно в основание 5:
def gumatj_multiply(num1, num2):
return decimal_to_gumatj(gumatj_to_decimal(num1) * gumatj_to_decimal(num2))