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

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

 

PythonСи++

s = int(input())

s = 3 * (s // 10)

n = 1

while s < 221:

    s = s + 13

    n = n * 2

print(n)

#include <iostream>

using namespace std;

int main()

{

    int s, n;

    cin >> s;

    s = 3 * (s / 10);

    n = 1;

    while (s < 221) {

        s = s + 13;

        n = n * 2;

    }

    cout << n << endl;

    return 0;

}

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

var s, n: integer;

begin

    readln(s);

    s := 3 * (s div 10);

    n := 1;

    while s < 221 do begin

        s := s + 13;

        n := n * 2

    end;

    writeln(n)

end.

алг

нач

    цел s, n

    ввод s

    s := 3 * div(s,10)

    n := 1

    нц пока s < 221

        s := s + 13

        n := n * 2

    кц

    вывод n, нс

кон

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

Ре­ше­ние.

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

var s, n, i, count: integer;

begin

for i := 0 to 10000 do begin

s := 3 * (i div 10);

n := 1;

while s < 221 do begin

s := s + 13;

n := n * 2

end;

if n = 256 then count := count + 1;

end;

writeln(count);

end.

После вы­пол­не­ния про­грам­мы ко­ли­че­ство таких чисел, вы­ве­ден­ное на экран, будет равно 50.

 

Ответ: 50.

 

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

k = 0

for i in range(1, 10000):

s = i

s = 3 * (s // 10)

n = 1

while s < 221:

s = s + 13

n = n * 2

if n == 256:

k += 1

print(k)

Раздел кодификатора ФИПИ: 1.7.2 Ос­нов­ные кон­струк­ции языка про­грам­ми­ро­ва­ния. Си­сте­ма про­грам­ми­ро­ва­ния