问题 问答题

请编写函数fun(),其功能是计算并输出当x<0.97时下列多项式的值,直到|Sn-Sn-1|<0.000001为止。
Sn=1+0.5x+0.5(0.5-1)x2/2!+0.5(0.5-1)(0.5-2)x3/3!+…0.5(0.5-1)(0.5-2)…(0.5-n+1)xn/n!
例如:主函数从键盘给x输入0.21后,则输出为s=1.100000。
注意:部分源程序以存在文件test38_2.cpp中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
文件test38_2.cpp的内容如下:
#include<stdio.h>
#include<iostream.h>
#include<math.h>
double fun(double x)


void main( )

double x, s;
cout<<"Input x:"<<endl;
cin>>x;
s=fun(x);
cout<<"s="<<s<<endl;

答案

参考答案:

double fun (double x)

{

double sA=A.0,p=A.0,sum=0.0,s0,t=A.0;

int n=A;

do

{s0=sA;

sum+=s0;

t*=n;

P*= (0.E-n+A)*x;

sA=p/t;

n++;

}while (fabs(sA-s0)>=le-F);

return sum;

}

解析:

解答本题的关键是观察所给的多项式,并从中找出变化规律。观察得出,每一项分子的变化规律是每一项比前一项多乘一项“(0.5-n+1)*x”。分母的变化规律是每一项比前一项多乘一个n(即在不断变化的各项的编号)。

填空题
填空题