В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
nataliyagunina1
nataliyagunina1
28.01.2022 16:56 •  Информатика

До іть розв'язати задачу. Python. Задано число К. Напишіть програму, яка обчислить суму всіх чотирицифрових чисел кратних К. Постарайтеся написати програму без використання умовного оператора

Тест
1000
Відповідь
45000
Тест
9999
Відповідь
9999

Ответ:
викся1231
викся1231
05.08.2022 22:00

K = int(input())

a1 = 1000 + (K - 1000 % K) % K

an = 9999 - 9999 % K

print((a1 + an) * ((an - a1) // K + 1) // 2)

Объяснение:

Числа, кратные K, можно представить в виде a_i=i\cdot K. Тогда a_{i+1}=(i+1)K=iK+K=a_i+K, то есть эти числа составляют арифметическую прогрессию с разностью K. Одна из формул суммы арифметической прогрессии: S=\dfrac{a_1+a_n}{2}\cdot n. Необходимо узнать первое, последнее число (среди четырёхзначных) и их количество.

Первое число не меньше 1000. При делении на K 1000 даёт некоторый остаток r в диапазоне [0, K-1]. Тогда наименьшее искомое четырёхзначное число будет больше 1000 на K - r либо 1000 сама будет являться числом, кратным K. В последнем случае r = 0, K - r = K. Чтобы не прибавлять лишнего, достаточно взять остаток от K - r по K. Это не повлияет на значение K - r в остальных случаях, но обеспечит 0 при r = 0.

Последнее число не больше 9999. При делении на K 9999 даёт некоторый остаток p в диапазоне [0, K-1]. Наибольшее искомое четырёхзначное число будет меньше 9999 на p либо 9999 и будет этим числом. В данном случае ситуация p = K попросту невозможна, поэтому дополнительно брать остаток не придётся.

Положим первое и последнее четырёхзначное число, как a₁ и aₙ. Тогда они связаны соотношением a_n=a_1+K(n-1)\Leftrightarrow \dfrac{a_n-a_1}{K}=n-1\Leftrightarrow n=\dfrac{a_n-a_1}{K}+1. Подставив вычисленный n в формулу для суммы, получим нужный ответ.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?