c# - 如何使用 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;
提前感谢您的帮助!
解决方案
如评论中所述,存在范围问题。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);
}
推荐阅读
- python-3.x - 如何创建我的遗传算法群体?
- java - 如何在 Spring 运行时获取使用 @schedule 注释的方法的 cron 注释?
- java - 如何在获取整个 JSON 数据源的同时获取某个标签
- position - 使用 position:sticky 图像没有留在原地
- java - Spring Cache 中的 @Cacheable 将值存储在缓存之外的 redis 中。我如何将它放在redis的缓存中?
- java - 如何使用 UCanAccess 库在日期范围内进行过滤
- wpf - 如何忽略/覆盖父级的数据模板?
- vb.net - JSON 未反序列化为自定义类
- android - 我的 recyclerview 没有显示我的数组列表
- visual-studio-code - 如何在复制粘贴时覆盖 VS Code 中的文件(而不是将 *.1* 附加到文件名)?