Задания
Версия для печати и копирования в MS Word
Тип Д22 № 45256
i

Ниже на четырёх язы­ках про­грам­ми­ро­ва­ния за­пи­сан ал­го­ритм. По­лу­чив на вход число x, этот ал­го­ритм пе­ча­та­ет два числа: L и M. Ука­жи­те наи­боль­шее число x, при вводе ко­то­ро­го ал­го­ритм пе­ча­та­ет сна­ча­ла 12, а потом 19.

 

С++Python

#include <iostream>

using namespace std;

 

int main()

{

    int x, K1, K2, Q, P, L, M;

    cin >> x;

    Q = 8;

    P = 10;

    K1 = 0;

    K2 = 0;

    while (x <= 100){

        K1 = K1 + 1;

        x = x + P;

    }

    while (x >= Q){

    K2 = K2 +1;

    x = x − Q;

    }

        L = x + K1;

        M = x + K2;

    cout << L << endl << M << endl;

    return 0;

}

 

 x = int(input())

Q = 8

P = 10

K1 = 0

K2 = 0

while x <= 100:

    K1 = K1 + 1

    x = x + P

while x >= Q:

    K2 = K2 + 1

    x = x − Q

L= x + K1

M = x + K2

print(L)

print(M)

Ал­го­рит­ми­че­ский языкПас­каль

алг

нач

    цел x, K1, K2, Q, P, L, M

    ввод x

    Q := 8

    P := 10

    K1 := 0

    K2 := 0

    мц пока x <= 100

        K1 := K1 + 1

        x := x + P

    кц

    кц пока x >= Q

    K2 := K2 + 1

        x := x − Q

    кц

    L := x + K1

    M := x + K2

    вывод L, мс, M

кон

var x, K1, K2, Q, P, L, M: integer;

begin

    readln(x);

    Q := 8;

    P := 10;

    K1 := 0;

    K2 := 0;

    while x <= 100 do begin

        K1 := K1 + 1;

        x := x + P;

    end;

    while x >= Q do begin

        K2 := K2 + 1;

        x := x − Q;

    end;

    L := x + K1;

    M := x + K2;

    writeln(L);

    writeln(M);

end.

Спрятать решение

Ре­ше­ние.

Режим за­да­чу с по­мо­щью языка PascalABC пе­ре­бо­ром. Ниже при­ве­де­на про­грам­ма для ре­ше­ния этой за­да­чи.

var x, K1, K2, Q, P, L, M, i: integer;

begin

for i := 1000 downto 1 do begin

x := i;

Q := 8;

P := 10;

K1 := 0;

K2 := 0;

while x <= 100 do begin

K1 := K1 + 1;

x := x + P;

end;

while x >= Q do begin

K2 := K2 + 1;

x := x - Q;

end;

L := x + K1;

M := x + K2;

if (L = 12) and (M = 19) then begin

writeln(i);

break;

end;

end;

end.

В ре­зуль­та­те ра­бо­ты про­грам­мы по­лу­ча­ем ответ  — 53.

 

Ответ: 53.

 

При­ведём дру­гое ре­ше­ние на языке Python.

for i in range(10000, 0, -1):

x = i

Q = 8

P = 10

K1 = 0

K2 = 0

while x <= 100:

K1 = K1 + 1

x = x + P

while x >= Q:

K2 = K2 + 1

x = x - Q

L = x + K1

M = x + K2

if L == 12 and M == 19:

print(i)

break

Источник: ЕГЭ по ин­фор­ма­ти­ке 04.04.2022. До­сроч­ная волна