найти N ^ (1/17), используя python - PullRequest
0 голосов
/ 30 марта 2020

Я столкнулся с этой простой проблемой, для которой я думал, что существует прямое решение, но оно не работает.

Вот проблема.

Найти X st X = N ^ (1 / 17)

Примечание:

  1. Гарантируется, что всегда существует целочисленное решение.
  2. N, обозначающее строку длины L.
  3. 1 <= L <= 34. </li>
  4. Пример ввода: 131072. Соответствующий вывод: 2

Вот несколько кодов python, которые я пробовал, но он не очистил весь тест дело.

Note: All the below mentioned code cleared the given sample input but didn't clear the hidden input.

Код 1:

number = int(input())

x= pow(number,1/17)

x = int(x)

print(x)

Код 2:

num = int(input())

x = num**(1/17)

print(x)

Код 3:

num = int(input())

for i in range(1,110):
    a = pow(i,17)

    if (num-a)==0:
        x = i
        break
print(x)

Примечание. В третьем коде значение для l oop заканчивается на 110, поскольку длина 110 ^ (17) больше, чем L, то есть 34, как указано в вопросе.

Также я перепробовал все возможные комбинации int и float для ввода num и (1/17). например, x = pow (float (num), float (1/17)). Все еще не работает.

Я хочу, чтобы код python объяснил, какие случаи я пропустил, чтобы не получить ответы на все вопросы.

У меня нет доступа для проверки решение сейчас, потому что портал, на котором был размещен вопрос, закрыт, но даже если вы разместите правильный лог c, я пойму проблему.

1 Ответ

0 голосов
/ 30 марта 2020

Если вы находитесь в python 2.7, вы можете немного изменить второй код («код 2»), и он будет работать хорошо:

num = int(input())
x = num**(1.0/17) # 1.0 instead of 1
print(int(x + 0.5))

Однако второй код хорошо работает в python 3,6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...