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

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

Бей­сикPython

DIM K, I AS LONG

INPUT K

I = 0

WHILE F(I) < K

    I = I + 1

WEND

PRINT I

FUNCTION F(N)

    F = N*(N-1)+10

END FUNCTION

def f(n):

    return n*(n-1)+10

k = int(input())

i = 0

while f(i) < k:

    i = i + 1

print(i)

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

var k, i : longint;

    function f(n: longint) : longint;

        begin

            f := n*(n-1)+10

        end;

begin

    readln(k);

    i := 0;

    while (f(i) < k) do

        i := i+1;

    writeln(i)

end.

алг

нач

цел i, k

ввод k

i := 0

нц пока f(i) < k

i := i+1

кц

вывод i

кон

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

нач

знач := n*(n-1)+10

кон

Си++

#include <iostream>

using namespace std;

long f(long n)

{

    return n*(n-1)+10;

}

int main()

{

    long k, i;

    cin >> k;

    i = 0;

    while (f(i) < k)

        i++;

    cout << i << endl;

}

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

Ре­ше­ние.

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

«while (f(i) < k) do

i := i+1;».

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

 

Ответ: 10.


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