作业帮 > 综合 > 作业

编写程序,求下面数列的前若干项之积,直到第一次出现积小于0.0001为止,并输出此时已经参与运算的数列项数和最终的积.结

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/06/05 10:25:00
编写程序,求下面数列的前若干项之积,直到第一次出现积小于0.0001为止,并输出此时已经参与运算的数列项数和最终的积.结果保留6位小数.
1/(1*2),1/(3*4),1/(5*6),……,1/((2n-1)*(2n)),……
参考程序如下:
#include "stdio.h"
void main()
{
int n = 1;
double fac,product = 1;
do
{
fac = 1.0 / n / (n+1);
product *= fac;
n += 2;
}while(product >= 1e-4);
printf("n = %d\tproduct = %.6lf\n",n-2,product);
}
输出结果:
n = 7 product = 0.000025
再问: 能给个正好的答案吗?
再答: 其实这个正是正好的答案。不信,你可以看下面修改后的代码及运行结果: #include "stdio.h" void main() { int n = 1; double fac, product = 1, temp; do { temp = product; fac = 1.0 / n / (n+1); product *= fac; n += 2; }while(product >= 1e-4); printf("n = %d\tproduct = %.6lf\ttemp = %.6lf\n", n-2, product, temp); } 输出结果: n = 7 product = 0.000025 temp = 0.001389 temp是product的上一个值,只有product才满足要求,最后的temp并不满足要求。