在解决此类问题时,您可以尝试观察“趋势”或“模式”.
鉴于:100/1 99/2 98/3 97/4 96/5 … 3/98 2/99 1/100
我们得出:分子/分母,让我们把它称为除以d(n / d)
观察到的模式:
每次循环后> n – 1
每次循环后> d 1
所以,如果你有100个数字,你需要循环100次.因此,使用循环100次的for循环似乎是合适的:
for(int n=0; n<100; n++) //A loop which loops 100 times from 0 - 100
要让n以100开头,我们将循环更改为让n从100而不是0开始:
for(int n=100; n>0; n--) //A loop which loops 100 times from 100 - 0
你安顿了n,现在需要从1开始.
int d = 1; //declare outside the loop
把所有东西放在一起,你得到:
int d = 1;
double result = 0.0;
for (int n=100; n>0; x--)
{
result += (double)n/d; //Cast either n or d to double, to prevent loss of precision
d ++; //add 1 to d after every loop
}