You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中自动循环执行代码并累加r从2到10的计算结果

解决C#中循环计算并累加结果的问题

优化后的代码实现

static void Main()
{
    double n = 12;
    double p = 0.85;
    double total = 0; // 用于累加所有r对应的计算结果

    // 先计算n的阶乘,n固定不变只需计算一次
    double factN = 1;
    for (double x = 1; x <= n; x++)
    {
        factN *= x;
    }

    // 遍历r从2到10的所有取值
    for (double r = 2; r <= 10; r++)
    {
        // 重置阶乘变量,避免残留上一次循环的计算值
        double factR = 1;
        double factNR = 1;

        // 计算r的阶乘
        for (double y = 1; y <= r; y++)
        {
            factR *= y;
        }

        // 计算(n-r)的阶乘
        double nr = n - r;
        for (double z = 1; z <= nr; z++)
        {
            factNR *= z;
        }

        // 计算当前r对应的项并累加
        double currentValue = factN / (factR * factNR) * Math.Pow(p, r) * Math.Pow(1 - p, nr);
        total += currentValue;
    }

    Console.WriteLine("累加结果:" + total);
}

关键说明

  • 循环控制r:用for循环直接遍历r的取值范围(2到10),比while循环更直观,因为你明确知道r的起始和结束值。
  • 阶乘计算优化:n的阶乘只计算一次(n固定为12),减少重复计算;每次循环r时必须重置factR和factNR为1,否则会保留上一次的计算结果导致错误。
  • 累加逻辑:用total变量存储每次计算的结果之和,每次循环将当前r对应的计算值加到total中,最终得到总和。
  • 变量命名优化:将原代码中模糊的foct、fuct改为factR、factNR,让变量含义更清晰,便于理解和维护。

内容的提问来源于stack exchange,提问作者theouto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:06:28