等差数列的无穷和 C#

问题描述

我有方程 1/cos1+1/(cos1+cos2)+...1/(cos1+...+cosN)

看起来像是有限级数的求和。我做了这样的事情:

if(..)
{
    for (int i = 1; i < n; i++)
    {
        var formula = (1 / Math.Cos(1)) + (1 / (Math.Cos(1) + Math.Cos(n)));
        Console.WriteLine($"If user enters a random {n} number,then result of equation is {formula}");
    }
}

其中 n 是自然整数。
然后我意识到我在公式中做错了,它没有按照它应该的方式计算值。我被困住了。我该如何解决这个问题?

解决方法

当你能理解这一点时,你就会学到:

var ans = Enumerable.Range(1,n)
                    .Aggregate(0.0,(sum,n) => sum + 1.0 / Enumerable.Range(1,n)
                                                                 .Aggregate(0.0,(subSum,subN) => subSum+Math.Cos(subN)
                                                                 )
                    );