一本通1156 求π的值
生活随笔
收集整理的這篇文章主要介紹了
一本通1156 求π的值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
根據公式:
定義函數arctanx(x),求當最后一項小于10-6時π的值。
【輸入】
(無)
【輸出】
π的值。保留到小數點后10位。
1.一開始看到題一臉懵逼,過于簡單的題干和神奇的求解公式讓人惆悵,發人深思,完全沒法做嘛。
2.沒過多久就發現這是個制仗題……
3.題解
(1)硬核打表
手機上的(或者電腦上的)計算器真的NB……直接cout就行了嘛……
(2)抄近道
其實求π公式很多,咱也可以不用出題人的這個嘛(看起來好麻煩…)
就比如下面這個
用簡單的循環直接搞就是了,多算幾位也沒關系,四舍五入然后再cout個十位的就是了。其他公式也同理。
(3)正解
其實也不難,還是函數+循環的基本操作,話不多說上代碼:
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double hanshu(double x);
int main()
{
double a,pai;
a=1/sqrt(3);
pai=6*(hanshu(a));
printf("%.10lf
",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 求π的值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php特级学习笔记
- 下一篇: 加入阿里15年,口碑仍在“流浪”