10 класс информатика срочно!!!Определите, количество чисел K, для которых следующая...

0 голосов
124 просмотров

10 класс информатика срочно!!!

Определите, количество чисел K, для которых следующая программа выведет такой же результат, что и для K = 18: var i, k: integer; function F(x:integer):integer; begin F:=x*x; end; begin i := 0; readln(K); while F(i) < K do i:=i+1; writeln(i); end.

Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k=12. Значение k=2 также включается в подсчёт различных значений k. var k, i : longint; function f(n: longint) : longint; begin f := 3*n*n - 2*n; end; begin readln(k); i := 1; while f(i) < k do i:= i+1; if f(i)-k <= f(i-1) then writeln(i) else writeln(i-1); end.<br>
Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 14. var k, i : longint; function f(n: longint): longint; begin f := n * n * n; end; function g(n: longint): longint; begin g := 5*n + 1; end; begin readln(k); i := 1; while f(i) < g(k) do i := i+1; writeln(i) end.


Информатика (164 баллов) | 124 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

1. F(x) = x^2. 
Что происходит в программе? Сначала i = 0, затем, пока F(i) = i^2 меньше K, i увеличивается на 1, и в конце выводится i.
Цикл прерывается тогда, когда i^2 станет не меньше K.

Итого, программа выводит наименьшее число, квадрат которого не меньше K.
При K = 18 это происходит при i = 5. Такой же результат будет для всех 16 < K <= 25, это 25 - 16 = 9 чисел.<br>
2. Тут начало похожее: в i появляется наименьшее число, для которого f(i) не меньше k. Затем, если f(i) - k <= f(i - 1), выводится i, иначе i - 1.<br>Это условие не очень удобное, перепишем так: если k >= f(i) -  f(i - 1), то выводим i, иначе i - 1.

f(i) = 3i^2 - 2i

Для k = 12 выведется 2: f(3) = 21, но 12 < f(3) - f(2) = 21 - 8 = 13.

2 выведется, если:
- i = 2, при этом k >= f(2) - f(1)
- i = 3, и k < f(3) - f(2)

f(1) = 1
f(2) = 8
f(3) = 21

Первый случай: 1 < k <= 8, при этом k >= 8 - 1. Подходят k = 7 и k = 8.
Второй случай. 8 < k <= 21, при этом k < 21 - 8. Подходят k = 9, 10, 11, 12.<br>
Всего 6 чисел.

3. По аналогии с первым, выводится наименьшее натуральное i, для которого f(i) >= g(k). Для k = 14 g(k) = g(14) = 71, и i = 5 (5 в кубе не меньше 71, а 4 в кубе - меньше 71). Нужно найти такое целое k, для которого
g(k) <= 5^3<br>g(k) > 4^3

64 < 5k + 1 <= 125<br>63 < 5k <= 124<br>13 <= k <= 24<br>k = 13.

(148k баллов)
0

спасибо Вам большое, выручили! :)