Рубрики
Информатика

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

Вопрос пользователя по предмету Информатика

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

Ответ учителя по предмету Информатика

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

Ваша программа проходит с число 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())))

 

Добавить комментарий

Ваш адрес email не будет опубликован.