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

Опре­де­ли­те, при каком наи­мень­шем введённом зна­че­нии пе­ре­мен­ной s дан­ная про­грам­ма вы­ве­дет число 96. Для Ва­ше­го удоб­ства про­грам­ма пред­став­ле­на на четырёх язы­ках про­грам­ми­ро­ва­ния.

 

PythonСи++

s = int(input())

s = s // 7

n = 1

while s < 255:

    if (s+n) % 2 == 0:

        s = s + 11

    n = n + 5

print(n)

#include <iostream>

using namespace std;

int main()

{

    int s, n;

    cin >> s;

    s = s / 7;

    n = 1;

    while (s < 255) {

        if ((s+n) % 2 == 0)

            s = s + 11;

        n = n + 5;

}

    cout << n << endl;

    return 0;

}

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

var s, n: integer;

begin

    readln(s);

    s := s div 7;

    n := 1;

    while s < 255 do begin

        if (s+n) mod 2 = 0 then

            s := s + 11;

        n := n + 5

    end;

    writeln(n)

end.

алг

нач

    цел s, n

    ввод s

    s := div(s,7)

    n := 1

    нц пока s < 255

        если mod(s+n,2) = 0

            то s := s + 11

        все

        n := n + 5

    кц

    вывод n, нс

кон

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

Ре­ше­ние.

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

var s, n, i: integer;

begin

for i := 1 to 1000 do begin

s := i div 7;

n := 1;

while s < 255 do begin

if (s+n) mod 2 = 0 then

s := s + 11;

n := n + 5

end;

if n = 96 then begin

writeln(i);

break;

end;

end;

end.

После вы­пол­не­ния про­грам­мы наи­мень­шее зна­че­ние s, вы­ве­ден­ное на экран, будет равно 329.

 

Ответ: 329.

 

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

for i in range(1, 1000):

s = i

s = s // 7

n = 1

while s < 255:

if (s+n) % 2 == 0:

s = s + 11

n = n + 5

if n == 96:

print(i)

break