Регистрация
Войти
Стать экспертом Правила
Информатика

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

ОТВЕТЫ

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

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

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

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

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

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

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

Следующая команда дает остаток от деления b на 100, то есть 123 % 100 = 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 строку:

659
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам