Здравствуйте, помогите, пожалуйста, исправить код в Python

Рейтинг: -1Ответов: 4Опубликовано: 30.01.2023

Вот задание Дано пятизначное целое число. Напишите алгоритм, который возведёт количество десятков в степень количества единиц. Затем умножит это число на количество сотен. И делит получившееся число на разность количества десятков тысяч и количества тысяч

Например, есть число 46275

Необходимо возвести 7 (десятки) в степень 5 (единицы), умножить получившееся число на 2 (сотни), и разделить на разность между 4 (десятки тысяч) и 6 (тысячи) то есть (4-6)

В результате необходимо получить вещественное число. В нашем примере это будет: -16807.0 Код должен запрашивать пятизначное число, разбивать его на составляющие и проводить арифметическую операцию.

i = map(int, input())

rez = ((7**5)*20)/(4-6)

print(rez)

Ответы

▲ 3
def algorithm(number):
    ones = number % 10
    tens = (number // 10) % 10
    hundreds = (number // 100) % 10
    thousands = (number // 1000) % 10
    tens_of_thousands = (number // 10000) % 10

    result = tens ** ones
    result *= hundreds
    result /= (tens_of_thousands - thousands)

    return result
▲ 2

Думаю, стоит воспользоваться срезами: Десятки - это второй символ с конца, Сотни - третий и т.д.

Примерный код -

a = 12345 
str_a = str(a)

unit = int(str_a[-1:])
dec = int(str_a[-2:-1])
hundreds = int(str_a[-3:-2])
thousands = int(str_a[-4:-3])
hundreds_thousands = int(str_a[-5:-4])

Подробнее про срезы можно почитать в документации

▲ 2

Как вариант

>>> i = list(map(int, input()))
46275
>>> rez = ((i[3]**i[4])*i[2]*100)/(i[0]-i[1])
>>> print(rez)
-1680700.0
>>> 
▲ 1

Вот еще вариант:

a, b, c, d, e=map(int, input())

f=d**e*c/(a-b)
print(f)