While28. Дано вещественное число $$\epsilon$$ ($$> 0$$). Последовательность вещественных чисел $$A_K$$ определяется следующим образом: $$A_1 = 2 , A_K = 2 + 1/A_{K-1}, K = 2, 3, …$$ . Найти первый из номеров $$K$$, для которых выполняется условие $$|A_K — A_{K-1}| < \epsilon$$, и вывести этот номер, а также числа $$A_{K-1}$$ и $$A_K$$.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
program While28; var k:Integer; Ak1,Ak,e:Real; begin Write('Введите e: '); Readln(e); Ak1:=0; Ak:=2; K:=1; while Abs(Ak-Ak1) >= e do begin Inc(k,1); Ak1:=Ak; Ak:=2+1/Ak1; end; Writeln(k,' ',Ak1,'',Ak); end. |
Другие задачи из раздела While можно посмотреть здесь.
Здесь также вначале выводим меньшее Ak1 потом большее Ak . Кстати, не пойму чему равно Ak1 до входа в цикл?… Хотя вроде бы работает
Ak моглго равняться очень большому диапазону значений. И очень много нас устраивало, поэтому и работало.
Добавил:
Поправил вывод:
Было:
Стало:
Ak1=0 не входит в последовательность по условию, задайте е=2.1
умеет автор этого задачника так сформулировать задачу, чтоб нифига ясно небыло.
можно было сказать проще, что каждое последующее число соотносится с предыдущим по формуле: каждое следующее = 2+1/предыдущее. И в заданиях где числа фибоначчи он так же мутно формулирует.