C#循环分数

nga*_*iel -3 c# loops visual-studio

我需要有人给我一个关于如何继续解决这个问题的想法.使用循环计算分数,没有共同的价值.我想得到总和

例如分数:

1  1/5  1/10  1/15  1/20 … 1/290  1/295  1/300
Run Code Online (Sandbox Code Playgroud)

代码片段: -

int sum=0;
for(int i=1;i<=60 ;i++)
{
   int sum=1
}
Run Code Online (Sandbox Code Playgroud)

Bat*_*eba 5

由于使用浮点问题,这些问题实际上是非常重要的,并且就此而言是十进制类型.

接受你想要一个循环解决方案(一个封闭的表格解决方案n确实存在),首先请注意你的系列可以写成

1 + 1/5(1 + 1/2 + 1/3 + ... + 1/60)
Run Code Online (Sandbox Code Playgroud)

然后请注意,使用浮点类型时,一个好的经验法则是首先添加小项.

所以算法就是这种形式

double sum = 0.0;
for (int i = 60; i >= 1; --i){
    sum += 1.0 / i;
}
sum = sum / 5 + 1;
Run Code Online (Sandbox Code Playgroud)

注意1.0分子中的; 那就是打败整数除法.

参考:浮点数学是否破碎?