无限系列:循环以无穷大结束

时间:2016-10-25 21:01:40

标签: c# math while-loop series infinite

我想计算一个系列,但我没有得到我的do..while循环正确。 用户输入x,然后总结如下: sum = sum + x / 2 ^ n,其中n是运行变量。

这必须循环,直到总和<= 0.00001。

然后程序将通知用户总和的值以及运行变量的大小。

到目前为止我的代码:

public static int n = 0;

static void Main(string[] args)
{

double x, sum = 0, e = 0.00001;

Console.Write("input x: ");
x = Convert.ToDouble(Console.ReadLine());

do
{
  sum = sum + x / Math.Pow(2,n);
  n++;
} while (sum >= e);

Console.WriteLine ("Sum = " + sum + ", " + n + " count");

}

但我的代码导致无限循环。你有什么想法,我怎么能实现它?

1 个答案:

答案 0 :(得分:5)

你循环直到总和非常小;你应该循环直到增量非常小:

var delta = e;
do
{
  delta = x / Math.Pow(2,n);
  sum = sum + delta;
  n++;
} while (delta >= e);