首页 > 解决方案 > 如何使用 c# 中的方程递增变量?

问题描述

抱歉,如果这是一个非常简单的问题,我目前正在自学 C#。


            foreach(int n in Enumerable.Range(0, Range)) {

                double s += (1 / Math.Pow(n, 2));
                double s6 = s * 6;
                double pi = Math.Sqrt(s6);

                Console.WriteLine("Pi is equal to {0}", pi);
            }
            

这将返回错误“无效的表达式术语 '+='”。

我之前用 python 编写了一个执行相同任务的程序,但是,我想要这条线;

double s = (1 / Math.Pow(n, 2));

在 foreach 循环为真时添加到自身,以与我的 python 变体类似的方式;

s  += 1/n**2;

提前感谢您的帮助!

标签: c#

解决方案


如评论中所述,存在范围问题。s 必须在循环外声明并设置初始值以按预期方式使用 +=。

double s = 0;
foreach(int n in Enumerable.Range(0, Range))
{
    s += (1 / Math.Pow(n, 2));
    double s6 = s * 6;
    double pi = Math.Sqrt(s6);
    Console.WriteLine("Pi is equal to {0}", pi);
}

推荐阅读