请编写函数fun(),其功能是计算并输出下列多项式值
Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n!
例如:从键盘输入15,则输出为s=2.718282。
注意;部分源程序以存在文件test37_2.cpp中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
文件test37_2.cpp的内容如下:
#include<stdio.h>
#include<iostream.h>
double fun(int n)
void main ( )
int n;
double s;
cout<<"Input n:"<<end1;
cin>>n;
s=fun(n);
cout<<"s="<<s<<end1;
参考答案:
double fun(int n)
{
double t,sn=1.0;
int i,j;
for(i=1;i<=n;i++)
{t=1.0;
for(j=1;i<=i;j++)
t*=j;
sn+=1.0/t;
}
return sn;
}
解析: 本题解法是通过观察所给的多项式,可以找出该多项式相应的数学规律。本题中,多项式是一个累加求和的多项式,并且每一项总是比前一项多乘一个整数,所乘整数恰好等于每一项的编号,这样利用循环语句进行阶乘、累加就可以实现功能。由于函数中出现了“/”的运算,所以最终的函数值要考虑到用double类型。