C# Найти первый из номеров K, для которых выполняется условие
Формулировка задачи:
Ввести вещественное число e > 0. Последовательность вещественных чисел AK определяется следующим образом: A1=1, A2=2, AK=(AK–2 + 2·AK–1)/3, K = 3, 4, … . Найти первый из номеров K, для котороых выполняется условие |AK – AK–1| < e, и вывести этот номер, а также числа AK–1 и AK.
Выполнить надо тремя циклами:For, while,dowhile!!
Решите плисс очень как надо срочно!!! заранее спс!
Решение задачи: «C# Найти первый из номеров K, для которых выполняется условие»
textual
Листинг программы
static IEnumerable<double> Sequence(double e)
{
var a_k2 = 1F;
var a_k1 = 2F;
yield return a_k2;
yield return a_k1;
while (true)
{
var a_k = (a_k2 + 2 * a_k1) / 3;
a_k2 = a_k1;
a_k1 = a_k;
yield return a_k;
}
}
var e = 1.0;
var sequence = Sequence(e);
var a_k1 = sequence.First();
var k = 2;
foreach (var a_k in sequence.Skip(1))
{
var state = Math.Abs(a_k - a_k1) < e;
if (state)
{
Console.WriteLine("K = {0}, A_{K-1} = {1}, A_{K} = {2}", k, a_k1, a_k);
}
k++;
}