我正在尝试编写一种方法,该方法将对方程式进行迭代扩展,该方程式在第二次迭代后具有已定义的模式。我需要将每次迭代的结果放入List<T>
中,所以我需要在每次迭代时停止。
前几个步骤如下:
Fraction step1 = whole + half;
Console.WriteLine(" 1: " + step1);
Fraction step2 = whole + whole / (whole * 2 + half);
Console.WriteLine(" 2: " + step2);
Fraction step3 = whole + whole / (whole * 2 + whole / (whole * 2 + half));
Console.WriteLine(" 3: " + step3);
Fraction step4 = whole + whole / (whole * 2 + whole / (whole * 2 + whole / (whole * 2 + half)));
Console.WriteLine(" 4: " + step4);
Fraction step5 = whole + whole / (whole * 2 + whole / (whole * 2 + whole / (whole * 2 + whole / (whole * 2 + half))));
Console.WriteLine(" 5: " + step5);
基本上在每次迭代step >= 2
之后,half
都会被whole / (whole * 2 + half)
替换,并持续n次迭代。
不过,我不确定如何在C#中编写类似的迭代方程。
说明:至少会有1000次迭代。只有第1步不遵循该模式(从技术上讲,我猜第2步不遵循该模式)。
答案 0 :(得分:0)
尝试一下-
List<Fraction> steps = new List<Fraction>();
for (int i = 0; i < 5; i++)
{
if (i > 0)
half = whole / (whole * 2 + half);
var step = whole + half;
steps.Add(step);
Console.WriteLine($" {i + 1}: {step}");
}
所有步骤都存储在steps
列表中。