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

На­пи­ши­те в от­ве­те число раз­лич­ных зна­че­ний вход­ной пе­ре­мен­ной k, при ко­то­рых про­грам­ма выдаёт тот же ответ, что и при вход­ном зна­че­нии k = 55. Зна­че­ние k = 55 также вклю­ча­ет­ся в подсчёт раз­лич­ных зна­че­ний 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 = 3*N*N+1

END FUNCTION

def f(n):

    return 3*n*n+1

k = int(input())

i = 0

while f(i) < k:

    i = i + 1

print(i)

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

алг

нач

    цел i, k

    ввод k

    i := 0

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

        i := i+1

    кц

    вывод i

кон

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

нач

    знач := 3*n*n+1

кон

var k, i : longint;

function f(n: longint):longint;

begin

    f := 3*n*n+1

end;

begin

    readln(k);

    i := 0;

    while (f(i)<k) do

        i := i+1;

    writeln(i)

end.

Си++

#include <iostream>

using namespace std;

long f(long n) {

    return 3*n*n+1;

}

int main()

{

    long k, i;

    cin >> k;

    i = 0;

    while (f(i)<k)

        i++;

    cout << i << endl;

}

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

Ре­ше­ние.

Про­грам­ма вы­во­дит ми­ни­маль­ное i, ко­то­рое удо­вле­тво­ря­ет не­ра­вен­ству 3 умно­жить на i в квад­ра­те плюс 1 боль­ше или равно k. Для k=55 i=5.

Найдём все под­хо­дя­щие k. Это те k, для ко­то­рых вы­пол­не­ны оба не­ра­вен­ства 3 умно­жить на 5 в квад­ра­те плюс 1 боль­ше или равно k и k боль­ше 3 умно­жить на 4 в квад­ра­те плюс 1.

Таким об­ра­зом, по­лу­ча­ем 49 мень­ше k мень­ше или равно 76. Этот про­ме­жу­ток со­дер­жит 27 целых зна­че­ний k.


Аналоги к заданию № 8669: 9173 9205 9313 Все