问题描述
我有方程 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)
)
);