请编写函数fun(),其功能是计算并输出下列多项式值 Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! 例如:从键盘输入15,则输出为s=2.718282。 注意;部分源程序以存在文件test37_2.cpp中。 请勿改动主函数main

admin2010-02-08  10

问题 请编写函数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类型。
转载请注明原文地址:https://kaotiyun.com/show/B7ID777K
0

随机试题
最新回复(0)