use*_*539 1 c# math series infinite while-loop
我想计算一个系列,但我没有得到我的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");
}
Run Code Online (Sandbox Code Playgroud)
但我的代码导致无限循环.你有什么想法,我怎么能实现它?
你循环直到总和非常小; 你应该循环,直到增量非常小:
var delta = e;
do
{
delta = x / Math.Pow(2,n);
sum = sum + delta;
n++;
} while (delta >= e);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |