Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#每次循环运行时的变化方程_C#_.net_Winforms - Fatal编程技术网

c#每次循环运行时的变化方程

c#每次循环运行时的变化方程,c#,.net,winforms,C#,.net,Winforms,我正在创建一个pi计算器,但我遇到了一个问题,代码如下: (;;)的{ π=(4*(1/5/*此处为-or+*/(1/(n*Pow(5,n)))-n; n++; System.Diagnostics.Debug.WriteLine(“结果:+pi”); System.Diagnostics.Debug.WriteLine(“循环运行:“+loopRuns”); 循环次数+=1; if(n==迭代次数) { 完成(0); 打破 } } 我需要一种方法来生成t,这样循环的每一次运行都会发生变化,并

我正在创建一个pi计算器,但我遇到了一个问题,代码如下:

(;;)的
{
π=(4*(1/5/*此处为-or+*/(1/(n*Pow(5,n)))-n;
n++;
System.Diagnostics.Debug.WriteLine(“结果:+pi”);
System.Diagnostics.Debug.WriteLine(“循环运行:“+loopRuns”);
循环次数+=1;
if(n==迭代次数)
{
完成(0);
打破
}
}
我需要一种方法来生成t,这样循环的每一次运行都会发生变化,并且+


感谢您的帮助。

最简单的方法是在循环外添加一个变量:

int modifier = 1; // Or -1, depending on how you want to start
pi = (4*(1/5 + (1/(n * Pow(5, n))) * modifier ) ) - n;
modifier *= -1;
然后在循环内部:

int modifier = 1; // Or -1, depending on how you want to start
pi = (4*(1/5 + (1/(n * Pow(5, n))) * modifier ) ) - n;
modifier *= -1;

最简单的方法是在循环外有一个变量:

int modifier = 1; // Or -1, depending on how you want to start
pi = (4*(1/5 + (1/(n * Pow(5, n))) * modifier ) ) - n;
modifier *= -1;
然后在循环内部:

int modifier = 1; // Or -1, depending on how you want to start
pi = (4*(1/5 + (1/(n * Pow(5, n))) * modifier ) ) - n;
modifier *= -1;

像-+-+-+-+。。。没有条件只是在sequencelike-+-+-+-+。。。仅在序列中没有条件甚至更简单的第2行,没有乘法:
modifier=0-modifier。这将运行得更快。或者,看到示例已断开(loopRuns递增,但“n”用于在某个点断开):将代码更改为使用0中的实数for循环。。迭代并基于i%2更改修改器。但是我同意你在这里提供的解决方案。@codenoir虽然这是真的,但在这种情况下,基本加法和乘法之间的性能差异基本上为零。性能取决于迭代次数。考虑到上下文(计算pi),这个数字可能相当高。@BenjaminPodszun这是我考虑的另一种方法,但它会涉及某种检查(通过
if
或三元运算符),所以我选择了只处理简单算术的解。甚至更简单的第2行,没有乘法:
modifier=0-modifier。这将运行得更快。或者,看到示例已断开(loopRuns递增,但“n”用于在某个点断开):将代码更改为使用0中的实数for循环。。迭代并基于i%2更改修改器。但是我同意你在这里提供的解决方案。@codenoir虽然这是真的,但在这种情况下,基本加法和乘法之间的性能差异基本上为零。性能取决于迭代次数。考虑到上下文(计算pi),这个数字可能相当高。@BenjaminPodszun这是我考虑的另一种方法,但它会涉及某种检查(通过
if
或三元运算符),因此我选择了只处理简单算术的解。