Программное решение задач ЕГЭ по информатике

Задача 5822. Источник: Поляков. Задание КИМ 14

Страница задачи 5822

(А. Богданов) Операнды арифметического выражения записаны в системе счисления с некоторым частично заданным основанием:

231x324 – 134x222

В записи чисел переменной x обозначена неизвестная цифра. Определите наибольшее значение x, при котором абсолютное значение данного арифметического выражения при делении на 50 даёт остаток 31. Для найденного значения x вычислите целое частное от деления абсолютного значения арифметического выражения на 50 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.

Решение

Перебираем значения X до 9 и ищем ответ.

Python

result = 0
for x in range(10):
    n1 = 2 * (10324 + x * 1000) + 3
    n2 = 22 ** 4 + 3 * 22 ** 3 + 4 * 22 ** 2 + x * 22 + 2
    n = n1 - n2
    if abs(n) % 50 == 31:
        result = abs(n) // 50
print(result)

PascalABC

var
    x, n, n1, n2, r: Integer;
begin
    for x := 0 to 9 do
    begin
        n1 := 2 * (10324 + x * 1000) + 3;
        n2 := trunc(power(22, 4)) + 3 * trunc(power(22, 3)) +
              4 * trunc(power(22, 2)) + x * 22 + 2;
        n := n1 - n2;
        if abs(n) mod 50 = 31 then
            r := abs(n) div 50;
    end;
    Writeln(r);
end.

C++

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int r = 0;
    for (int x = 0; x < 10; x++)
    {
        int n1 = 2 * (10324 + x * 1000) + 3;
        int n2 = (int)pow(22, 4) + 3 * (int)pow(22, 3) +
            4 * (int)pow(22, 2) + x * 22 + 2;
        int n = n1 - n2;
        if (abs(n) % 50 == 31)
            r = abs(n) / 50;
    }
    cout << r << endl;
}

Ответ

4870

Отправить замечание по решению

Код по которому имеется замечание:

Ваш вариант кода:

Комментарий: