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

При каком наи­мень­шем зна­че­нии вход­ной пе­ре­мен­ной k про­грам­ма выдаёт тот же ответ, что и при вход­ном зна­че­нии k = 64? Для Ва­ше­го удоб­ства про­грам­ма при­ве­де­на на пяти язы­ках про­грам­ми­ро­ва­ния.

Бей­сикPython

DIM K, I AS LONG

INPUT K

I = 12

WHILE I > 0 AND F(I) > K

    I = I - 1

WEND

PRINT I

FUNCTION F(N)

    F = N * N - 20

END FUNCTION

def f(n):

    return n * n - 20

k = int(input())

i = 12

while i > 0 and f(i) > k:

    i = i - 1

print(i)

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

var k, i : longint;

    function f(n: longint) : longint;

        begin

            f := n * n - 20

        end;

begin

    readln(k);

    i := 12;

    while (i>0) and (f(i)> k) do

        i := i-1;

    writeln(i)

end.

алг

нач

цел i, k

ввод k

i := 12

нц пока i > 0 и f(i) > k

i := i - 1

кц

вывод i

кон

алг цел f(цел n)

нач

знач := n * n - 20

кон

Си++

#include <iostream>

using namespace std;

long f(long n) { return n * n - 20; }

int main()

{

    long k, i;

    cin >> k;

    i = 12;

    while (i>0 && f(i)>k) i––;

    cout << i << endl;

    return 0;

}

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

Ре­ше­ние.

При k = 64 про­грам­ма вы­ве­дет число 9. Пе­ре­мен­ная k от­ве­ча­ет за ко­ли­че­ство вы­пол­не­ний цикла

«while (i>0) and (f(i)> k) do

i := i-1;».

За­пи­шем не­ра­вен­ство: i в квад­ра­те минус 20 боль­ше x. Для того, чтобы ре­зуль­тат вы­во­да про­грам­мы был равен 9 при i=10 не­ра­вен­ство ещё долж­но вы­пол­нять­ся, а когда i ста­нет равно 9 уже нет. По­лу­ча­ем двой­ное не­ра­вен­ство:61 мень­ше или равно x мень­ше 80.Сле­до­ва­тель­но, наи­мень­шее число  — 61.

 

Ответ: 61.


Аналоги к заданию № 7932: 9372 7997 9771 ... Все