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 |
#include <stdio.h> #include <math.h> int main(void) { float e; printf("e:"); scanf("%f",&e); float ak1=1,ak=2,ak2; int k=2; while (fabs(ak-ak1)>=e) { ak2=ak1; ak1=ak; ak=(ak2+2*ak1)/3; ++k; } printf("K:%i\nA(k-1):%f\nAk:%f\n",k,ak1,ak); return 0; } |
Другие задачи из раздела While можно посмотреть здесь.
Комментарии: