带有while循环的第一个函数:
public static double sum(int n){ double sum = 0; while (n!=0){ sum+=1.00/((2*n-1)*(2*n+1)); n--; } return sum; }
相同的功能,但for循环提供了另一种解决方案.
public static double sum1(int n){ double sum = 0; for (int i=1;i<=n;i++){ sum+=1.00/((2*n-1)*(2*n+1)); } return sum; }
函数计算系列:
1 /(1*3)+ ... + 1 /((2n + 1)*(2n-1))
由于某种原因,使用for循环的函数使得和越来越小而while函数工作正常.
为什么for循环解决方案不起作用?
你的for
循环使用了错误的变量 - 它应该是使用它i
.
在while
循环中,您使用的n
是控件和当前表示的值.您只需要更改for
要使用的循环i
,因为它表示您当前正在迭代的值.