• python !! нужно найти все трехзначные и четырехзначные числа, сумма цифр которых равны и вывести их на экран. мой код: for i in range(100, 10000): c = 0 while c>0: p = i//1000 k = i//100%10 l = i//10%10 b = i%10 c==p+b+k+l if c==15: print(i)он не работает, нужно исправить ошибки и сделать в примерно таком стиле. спасибо большое тем, кто откликнется ​

Ответы 2

  • Ваш код содержит несколько ошибок, которые могут препятствовать правильной работе программы. Вот несколько возможных исправлений:

    Ошибка в условии цикла while:

    В вашем коде переменная "c" инициализируется нулем, а затем условие цикла "while c>0" никогда не выполняется, поскольку значение "c" всегда меньше или равно нулю. Чтобы исправить эту ошибку, условие цикла нужно изменить на "while c<i:", чтобы цикл выполнялся, пока "c" не достигнет значения, равного сумме цифр числа "i".

    Ошибка в вычислении суммы цифр:

    В вашем коде переменная "c" должна быть равна сумме цифр числа "i", но вы используете оператор "==", который проверяет равенство, а не присваивание. Чтобы исправить эту ошибку, нужно заменить оператор "==" на оператор "=", чтобы значение суммы цифр числа "i" присваивалось переменной "c".

    Ошибка в проверке суммы цифр:

    В вашем коде проверка суммы цифр числа "i" на равенство 15 не всегда корректна, поскольку существуют числа с другими суммами цифр, которые также являются трехзначными или четырехзначными. Чтобы исправить эту ошибку, нужно заменить условие "if c==15:" на "if len(str(i)) == 3 or len(str(i)) == 4 and sum(int(digit) for digit in str(i)) == c:", чтобы проверить, является ли число трехзначным или четырехзначным и равна ли сумма его цифр переменной "c".

    Исправленный код может выглядеть так:

    for i in range(100, 10000):

       c = 0

       num_digits = len(str(i))

       if num_digits == 3 or num_digits == 4:

           for digit in str(i):

               c += int(digit)

           if c == sum(int(digit) for digit in str(i)):

               print(i)

    Этот код будет выводить все трехзначные и четырехзначные числа, сумма цифр которых равна, начиная с 100 и заканчивая 9999. Вы можете изменить диапазон, если нужно.

  • for i in range(100, 10000):

       c = 0

       p = i // 1000

       k = i // 100 % 10

       l = i // 10 % 10

       b = i % 10

       c = p + b + k + l

       if c == 15:

           print(i)

    answer img
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years