问题描述
- 大学c++计算级数问题,求大神
-
大学生小白求大神,为什么输出为-1.#ind0000求大神!!!!大学生小白求大神,为什么输出为-1.#ind0000求大神!!!!大学生小白求大神,为什么输出为-1.#ind0000求大神!!!!
解决方案
无限循环了,while条件改成1e8
解决方案二:
计算精度设置错误,有时候还需要考虑收不收敛,对于大数还可能出现溢出错误。
解决方案三:
不好意思,看错了。前面回答的不对,i=i*(i+1) 错了,加个参数,step ,另外,循环依旧结束不了,该终止条件吧,程序改成
double sign = 1, sum =1, n = 1, i = 1, x = 2, m = 0,step = 1;
do{
m = sign*pow(x,n)/i;
sum += m;
sign = -sign;
++ n;
i *= ++step;
cout << i << ' ' << endl;
}while( sum > 1e-8 );
解决方案四:
不好意思,看错了。前面回答的不对,i=i*(i+1) 错了,加个参数,step ,另外,循环依旧结束不了,该终止条件吧,程序改成
double sign = 1, sum =1, n = 1, i = 1, x = 2, m = 0,step = 1;
do{
m = sign*pow(x,n)/i;
sum += m;
sign = -sign;
++ n;
i *= ++step;
cout << i << ' ' << endl;
}while( sum > 1e-8 );
解决方案五:
不好意思,看错了。前面回答的不对,i=i*(i+1) 错了,加个参数,step ,另外,循环依旧结束不了,该终止条件吧,程序改成
double sign = 1, sum =1, n = 1, i = 1, x = 2, m = 0,step = 1;
do{
m = sign*pow(x,n)/i;
sum += m;
sign = -sign;
++ n;
i *= ++step;
cout << i << ' ' << endl;
}while( sum > 1e-8 );
解决方案六:
应该是m的绝对值吧(fabs(m)<=1e-8)