值得的任务
您可以创建一个应用程序,您可以使用该应用程序以 0.000001 的精度计算系列成员的总和,以及通过公式计算其成员的系列的前 10 个成员的总和。
这是公式本身:
写了这段代码:
int n = 1;
double a = 1, sum = 0.0, eps = 0.000001, sum_of_10 = 0;
while (fabs(a) > 0.000001) {
a = pow(-1, n)*((double)(2 * (n + 1)) / (2 + (n+1) * (n-1)));
sum += a;
if (n == 10)
sum_of_10 = sum;
n++;
}
textBox1->Text = sum_of_10.ToString();
当我单击表单上的按钮以计算所有内容时,表单会冻结并冻结
我做错了什么?
估计 - 你需要大约一百万会员。所以?什么将等于
(n+1) * (n-1)
这个?double
您稍后进行转换...您的 10 12不想以int
任何方式适应它...因此,a不想变小 - 所以我们拥有我们所拥有的 - 无限循环。至少这样做:
好吧,至少你可以显示中间结果?比如说,对于每千分之一的 n 打印一个n,看看会发生什么?
还有一件事 - 最好从最后计算这种缓慢收敛的系列,从术语的小值开始 - 这样准确性会更高。对于您的示例和准确性,这并不重要,但获得良好的举止:) 从一开始就很有意义。