Вопрос задан 06.07.2023 в 04:10. Предмет Информатика. Спрашивает Филенко Яна.

Ребят, скажите, пожалуйста, где ошибка??? задача: дано четырёхзначное число (входные данные -

число 2020). Найдите сумму его цифр. алг я написала, но не понимаю, почему система Сириус курсы не принимает мой алгоритм (на консоль программы выходит ВЕРНЫЙ ответ). проверьте, пожалуйста. n=int(input()) 2020 a=n%10 b=n//10 c=b//100 d=b%100 print(a+c+d) ЕЩЁ РАЗ ПОВТОРЮСЬ, ОТВЕТ ВЕРНЫЙ, ОШИБОК ПРОГРАММА НЕ ВЫДАЁТ, НО СИСТЕМА СИРИУС КУРСЫ УПОРНО НЕ ХОЧЕТ ПРИНИМАТЬ МОЙ АЛГОРИТМ. почему?
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Малюков Артём.

Проблема в том, что дано четырехзначное число, а в итоговом выводе у вас сумма трех переменных.

Ваша программа проходит с число 2020, так число содержит два нуля.

Разберем вашу программу.

Возьмем число n = 1234:

Командой 1234 % 10 мы берем последнее число, то есть 4, и присваиваем это значение переменной a. a = 4

Далее целочисленным делением мы убираем последнюю цифру этого числа, то есть остается 123, и присваиваем это значение переменной b.

Следующая команда целочисленного деления уже отсекает последние 2 цифры, то есть остается 1, переменная с = 1.

Следующая команда дает остаток от деления b на 100, то есть 123 % 100 = 23. d = 23

Следующая команда печатает сумму полученных переменных, то есть

4 + 1 + 23 = 28, но начальное число = 1234, и сумма его цифр явно не равна 28(1 + 2 + 3 + 4 = 10)

Альтернативой может стать последовательное целочисленное деление числа n на 10, то есть:

Возьмем число n = 1234:

a = n % 10  #4

n //= 10    #123

b = n % 10  #3

n //= 10   # 12

c = n % 10   # 2

n //= 10   #1

print(a + b + c + n)   # 10

А вообще возможности языка позволяют оформить программу в 1 строку:

print(sum(map(int, input())))

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Проблема вашего алгоритма заключается в том, что он не учитывает порядок цифр в числе. Вместо этого, он предполагает, что четырёхзначное число всегда будет иметь формат "ABCD", где A, B, C и D - отдельные цифры числа.

Однако, ваш пример числа 2020 на самом деле имеет формат "2002", где A=2, B=0, C=0 и D=2. Ваш алгоритм не учитывает это и приводит к неправильному результату.

Для нахождения суммы цифр числа, вы можете воспользоваться следующим алгоритмом:

python
n = int(input()) sum_of_digits = 0 # Разделяем число на отдельные цифры и суммируем их while n > 0: digit = n % 10 # Получаем последнюю цифру sum_of_digits += digit # Добавляем цифру к сумме n = n // 10 # Удаляем последнюю цифру из числа print(sum_of_digits)

Этот алгоритм корректно обрабатывает любое четырёхзначное число и найдёт сумму его цифр. Попробуйте использовать его в вашей программе и проверьте, принимает ли его система Сириус курсы.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос