While7. Дано целое число $$N$$ ($$> 0$$). Найти наименьшее целое положительное число $$K$$, квадрат которого превосходит $$N$$: $$K^2 > N$$. Функцию извлечения квадратного корня не использовать.
Решение:
1 2 3 4 5 6 7 8 9 10 |
program While7; var N,k :Integer; begin Write('Введите N: '); Readln(N); K:=1; while Sqr(K)<=N do inc(K,1); Writeln(K); end. |
Другие задачи из раздела While можно посмотреть здесь.
Изначально K:=0
Есть условие $$N>0$$
следовательно
$$K^2>N>0$$
Если $$ K = 0$$ то $$0^2=0$$
Так как неравенства строгие, получается всегда ложное не равенство:
$$0>N>0$$
Поэтомоу не вижу смысла начинать с нуля…
тут конечно лучше сделано, но мало ли кому-то сгодится мой вариант:
var
k,n,i:real;
begin
readln (n);
i:=1;
while n>k do
begin
k:=sqr(i);
if n<k then break;
i:=i+1;
writeln (i,' ',k);
end;
writeln('наименьшее число:',i);
end.