Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 4, 2025 09:59:55

Mila
Зарегистрирован: 2025-04-04
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите найти ошибку в коде

Помогите пожалуйста найти ошибку в коде:
Задача.

  • На вход алгоритма подается натуральное число N. Алгоритм строит по нему новое число R следующим образом.

    1.  Строится троичная запись числа N.

    2.  Если N кратно 3, то в конец записи дописываются три последние цифры числа.

    3.  Если N не кратно 3, то остаток от деления умножается на 3, переводится в троичную систему и затем дописывается к числу.

    Полученная таким образом запись является троичной записью искомого числа R.

    Укажите минимальное число N, после обработки которого автомат получает число, большее 150.
    def f(n):
    s=''
    while n>0:
    s=str(n%3)+s
    n//=3
    return s
    c=set()
    for n in range (0,100):
    s=f(n)
    if n%3==0:
    s=s+s
    else:
    s=s+f((n%3)*3)
    r=int (s,3)
    if r>150:
    c.add(n)
    print (min©)

    Ошибка: Traceback (most recent call last):
    File “/home/teacher/1.py”, line 14, in <module>
    r=int (s,3)
    ValueError: invalid literal for int() with base 3: ''

Офлайн

#2 вчера 01:09:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9910
Репутация: +  855  -
Профиль   Отправить e-mail  

Помогите найти ошибку в коде

Mila
Задача.

На вход алгоритма подается натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1.  Строится троичная запись числа N.

2.  Если N кратно 3, то в конец записи дописываются три последние цифры числа.

3.  Если N не кратно 3, то остаток от деления умножается на 3, переводится в троичную систему и затем дописывается к числу.

Полученная таким образом запись является троичной записью искомого числа R.

Укажите минимальное число N, после обработки которого автомат получает число, большее 150.
Не мешало бы уточнить задание. Какое-то оно невнятное.

Во втором пункте предлагается что? В троичную запись напрямую записывать цифры из нетроичного числа? или переводить их в троичные числа сначала? переводить их целиком или переводить их по отдельности?

Например
На входе натуральное число 6. Оно кратно трём. Запись в троичной системе получается 20. К записи в троичной системе добавляем что? какие три последние цифры? 020 или 20 или 200?

И оно вот всё такое невнятное какое-то.

Так что более полное задание надо и примеры входных/выходных данных.



Отредактировано py.user.next (вчера 01:11:51)

Офлайн

#3 вчера 01:20:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9910
Репутация: +  855  -
Профиль   Отправить e-mail  

Помогите найти ошибку в коде

Mila
  
ValueError: invalid literal for int() with base 3: ''
Это связано с тем, что из функции f() возвращается пустая строка. Нужно ноль возвращать.
Если n равно нулю, нужно ноль возвращать.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version