Задача 5721. Источник: Поляков. Задание КИМ 5
(А. Игнатюк) Исполнитель «Аполлон» получает на вход четырёхзначное число N и строит новое число R по следующим правилам:
- Если число N начинается с чётной цифры, то число R вычисляется как сумма первой и третьей цифр и модуля разности второй и четвёртой цифр.
- Если число N начинается с нечётной цифры, то цифры числа N располагают в неубывающем порядке. Число R вычисляется как сумма цифр в двоичной записи полученного числа.
Сколько существует чисел N, для которых результат работы алгоритма будет более 20?
Решение
Поскольку максимальное четырехзначное число занимает 14 двоичных разрядов, оно никогда не сможет дать сумму больше 20. Таким образом, второй пункт алгоритма можно игнорировать. Так же мы можем сократить диапазон анализируемых чисел до 2000-8999. Число на разряды разбиваем операциями целочисленного деления.
Python
k = 0
for n in range(2000, 9000):
if n // 1000 % 2 == 0:
r = n // 1000 + n // 10 % 10 + abs(n // 100 % 10 - n % 10)
if r > 20:
k += 1
print(k)
PascalABC
var
n, r, k: Integer;
begin
k := 0;
for n := 2000 to 8999 do
if n div 1000 mod 2 = 0 then
begin
r := n div 1000 + n div 10 mod 10 + abs(n div 100 mod 10 - n mod 10);
if r > 20 then
k := k + 1;
end;
Writeln(k);
end.
C++
#include <iostream>
using namespace std;
int main()
{
int k = 0;
for (int n = 2000; n < 9000; n++)
if (n / 1000 % 2 == 0)
{
int r = n / 1000 + n / 10 % 10 + abs(n / 100 % 10 - n % 10);
if (r > 20)
k++;
}
cout << k << endl;
}
Ответ
160