C麦克劳林公式

这是最近上C语言实验的一道非常简单的数学题,也是学校去年的上机考试题

3dfbb0fa734f

就是给出公式,转换成代码就行了,不过我在课上,真没写出来?,今早又拿出来仔细复盘,在此记录一下

大概题目

用代码描述上述公式,要求最后一项大于1e-6

我课上写的

df34330d064c

课上其实有些同学直接去CSDN上copy了(变量都不改,被老师骂了),我其实也去查了下,发现我的思路不也一样嘛,当时老师还提到了阶乘,都给提示了,我还是没想到自己的错误,最后还是没抄别人的代码,交了自己的错误答案上去了(我们的课堂作业和考试都是用FTP交的)

今早在wikipedia搜麦克劳林公式,然后得到这样一幅图

5cb2350d2f6e

这下我就秒懂我的错误了,分母是阶乘,而不是

8258d47b596f

我理解成 2=1+12,6=2+22,这下压根跳不出循环了,子项是越来越大的 这下吃了数学的亏了,上学期学的公式都忘了,何况这个题目都完全给出了,而俺连题都没读对

修正后:

4e433cbe5b58

另外要注意的,本题作为分母的阶乘不要使用long,更不要用int存,会直接超出范围而溢出,可以用double或者long long,but 机房的VC6.0似乎并没有支持C99的long long,其实在课上我就一直在想是不是这个错误,因为之前写到过不管用哪个类型都会爆掉的,当时可以用科学计数法来存起来,输出也用科学计数法(会损失精度了),不过对这题来说方向完全错了

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片