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

如何修改C#代码实现递归计算到指定kn次迭代的数学函数

调整后完整递归实现代码

static void Main(string[] args)
{
    var k0 = Convert.ToInt32(Console.ReadLine());
    var kn = Convert.ToInt32(Console.ReadLine());
    var result = Calculate(k0, kn);
    // 可自行添加输出逻辑查看结果:Console.WriteLine(result);
}

// 保留原方法签名,无需修改Main调用逻辑
private static double Calculate(int k0, int kn)
{
    // 递归终止:迭代次数为0时直接返回当前值
    if (kn == 0)
        return k0;
    
    // 单次迭代计算逻辑与原规则完全一致
    var currentK = Math.Round(Math.Pow(Math.Sqrt(k0) + Math.Sqrt(Math.PI), 2));
    // 迭代次数减1,进入下一层递归
    return Calculate((int)currentK, kn - 1);
}

补充说明

如果不需要严格保留int类型的入参,避免迭代过程中强制类型转换丢失精度,也可以调整为双参数类型兼容的重载版本:

private static double Calculate(int k0, int kn)
{
    return CalculateCore(k0, kn);
}

private static double CalculateCore(double currentK, int remainingIterations)
{
    if (remainingIterations == 0)
        return currentK;
    var nextK = Math.Round(Math.Pow(Math.Sqrt(currentK) + Math.Sqrt(Math.PI), 2));
    return CalculateCore(nextK, remainingIterations - 1);
}

两种实现都完全遵循给定的迭代计算规则,输入kn为多少就执行多少次迭代后返回对应结果,输入kn为0时会直接返回初始k0值。

内容的提问来源于stack exchange,提问作者Abdullah Akçam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:54:06