Задания
Версия для печати и копирования в MS Word
Тип Д21 № 7705
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 + 30

END FUNCTION

def f(n):

return n * n + 30

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 + 30

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 + 30

кон

Си++

#include <iostream>

using namespace std;

long f(long n) { return n * n + 30; }

int main()

{ long k, i;

cin >> k;

i = 12;

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

cout << i << endl;

}

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

Ре­ше­ние.

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

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

i := i-1;».

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

 

Ответ: 11.


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