While29. Дано вещественное число $$\epsilon$$ ($$> 0$$). Последовательность вещественных чисел $$A_K$$ определяется следующим образом: $$A_1 = 1 , A_2 = 2 , A_K = (A_{K-2} + 2*A_{K-1})/3 , K = 3, 4, …$$ . Найти первый из номеров $$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 19 |
program While29; var k:Integer; Ak2,Ak1,Ak,e:Real; begin Write('Введите e: '); Readln(e); Ak:=2; Ak1:=1; K:=2; while Abs(Ak-Ak1) >= e do begin Ak2:=Ak1; Ak1:=Ak; Inc(k,1); Ak:=(Ak2+2*Ak1)/3; end; Writeln(k,' ',Ak,' ',Ak1); end. |
Другие задачи из раздела While можно посмотреть здесь.
При таком алгоритме должно быть наоборот
Ak:=2;
Ak1:=1;
Поправил.
перевожу с птичьего языка автора :каждое последующее число соотносится с двумя предыдущими как
третье число = (первое число+ второе число x 2 ) /3
в виде кода это так: