首页 > 其他 > 详细

一本通1156 求π的值

时间:2020-01-27 19:54:43      阅读:80      评论:0      收藏:0      [点我收藏+]

1.一开始看到题一脸懵逼,过于简单的题干和神奇的求解公式让人惆怅,发人深思,完全没法做嘛。
2.没过多久就发现这是个制仗题……
3.题解
(1)硬核打表
技术分享图片技术分享图片

手机上的(或者电脑上的)计算器真的NB……直接cout就行了嘛……
(2)抄近道
其实求π公式很多,咱也可以不用出题人的这个嘛(看起来好麻烦…)
就比如下面这个

技术分享图片
用简单的循环直接搞就是了,多算几位也没关系,四舍五入然后再cout个十位的就是了。其他公式也同理。
(3)正解
其实也不难,还是函数+循环的基本操作,话不多说上代码:
#include
#include
#include
using namespace std;
double hanshu(double x);
int main()
{
double a,pai;
a=1/sqrt(3);
pai=6*(hanshu(a));
printf("%.10lf\n",pai);
return 0;
}
double hanshu(double x)
{
double sum=0,temp=x;
int i=1;
while(fabs(temp/i)>=1e-6)
{
sum+=temp/i;
temp=-1xx*temp;
i+=2;
}
return sum;
}
嗯对没错就是这样。
4.最后总结一下吧:
这道题很典型,虽然正解不难打,但其他的方法无疑要巧妙省力的多。在做题的时候往往应该避开常规思路,寻求特殊解或巧解,这可能也是解决问题的捷径。

一本通1156 求π的值

原文:https://www.cnblogs.com/Jiangxingchen/p/12236654.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!