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

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

Бей­сик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;

}

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

Ре­ше­ние.

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

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

i := i-1;».

За­пи­шем не­ра­вен­ство: i в квад­ра­те плюс 20 боль­ше или равно x. Для того, чтобы ре­зуль­тат вы­во­да про­грам­мы был равен 6 при i=7 не­ра­вен­ство ещё долж­но вы­пол­нять­ся, а при i=6 уже нет. По­лу­ча­ем двой­ное не­ра­вен­ство:56 мень­ше x мень­ше или равно 69. То есть нам под­хо­дит 13 чисел.

 

Ответ: 13.


Аналоги к заданию № 7678: 7467 7705 7766 ... Все