已知函数e?x??可以展开为幂级數的和函数1+x+x?2??/2!+x?3??/3!+?+x?k??/k!+?现给定一个实数x,要求利用此幂级数的和函数部分和求e?x??的近似值求和一直继续到最后一项嘚绝对值小于0.00001。
输入在一行中给出一个实数x∈[0,5]
在一行中输出满足条件的幂级数的和函数部分和,保留小数点后四位
仔细观察,发现本題每一项的规律很明显所以可以设置一个函数用来求各项的值。然后在主函数(main函数中)控制需要加和到第几项不断调用函数,最后求出总和即可
本题要别注意这一点:“最后一项的绝对值小于0.00001”。所以无论使用哪种循环都要注意循环条件,观察出了循环后的当前項值必要时出了循环后还应该计算一次。(具体见代码注释)
sum = sum + fun(x, n);//最后一项的绝对值必须小于0.00001而上面的循环sum的值没有把最后一项包含进去,所以此处要添加这一句
上面的代码是把分母“求阶乘”作为单独一个分支计算分子“求乘方”是用过调用pow函数的方式。但是这样的代碼比较繁琐每计算一项加和,都要重新计算一遍阶乘而且不断调用pow函数也加大了开销。
对于数列中的每一项后一项的值=前一项值*(x/i),其中i表示项数。