如何在C#循环中保存每次迭代的k值?(附无穷级数计算代码)
保存循环中k值的实现方法
要保存每次循环生成的k值,直接使用List<double>集合存储每次计算得到的k即可,List是动态扩容的集合,不需要提前指定存储长度,不管你设置多少次迭代都能正常存储所有k值,具体修改如下:
- 引入
System.Collections.Generic命名空间,用来支持List集合的使用 - 在循环外部声明
List<double>类型的对象,用来存储所有k值 - 每次计算得到k后,调用集合的Add方法将k存入即可
完整修改后的代码如下:
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { // 用来存储所有生成的k值 List<double> kList = new List<double>(); // 可选:用来计算最终级数和,初始值为级数首项3 double piResult = 3; double a = 2; double b = 3; double c = 4; double g = 2; double t = 3; double n = 4; int A = 0; while (A < 10) { double d = 4 / (a * b * c); double e = -4 / (g * t * n); double k = d + e; // 每次生成k就存入集合,如果只需要存原代码中打印的k,把这行移到下方else if分支里即可 kList.Add(k); piResult += k; if (A % 2 == 0) { g += 2; t += 2; n += 2; A++; } else if (A % 2 == 1) { a += 2; b += 2; c += 2; A++; Console.WriteLine(k); } } // 循环结束后可按需调用kList里存储的所有k值,示例:遍历打印所有k Console.WriteLine("\n所有存储的k值:"); foreach (var val in kList) { Console.WriteLine(val); } Console.WriteLine($"级数计算结果:{piResult}"); } }
内容的提问来源于stack exchange,提问作者Krispy
相关产品推荐
相关产品推荐

