While14. Дано число $$A$$ ($$> 1$$). Вывести наибольшее из целых чисел $$K$$, для которых сумма $$1 + 1/2 + … + 1/K$$ будет меньше $$A$$, и саму эту сумму.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
program While14; var Temp:Real; A,K :Integer; begin Write('Введите A: '); Readln(A); K:=0; Temp:=0; while Temp<=A do begin inc(K,1); Temp:=Temp+1/K; end; Writeln(K-1,' ',Temp-1/K); end. |
Другие задачи из раздела While можно посмотреть здесь.
Поправил.
Было:
Writeln(K,’ ‘,Temp);
Стало:
Writeln(K-1,’ ‘,Temp-1/K);