11行代码AC——比紫书优化,例题2-3 近似计算——解题报告
生活随笔
收集整理的這篇文章主要介紹了
11行代码AC——比紫书优化,例题2-3 近似计算——解题报告
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
勵(lì)志用更少的代碼做高效的表達(dá)
題意:
計(jì)算π/4 = 1 - 1/3 + 1/5 - 1/7 + …,直到最后一項(xiàng)小于10^-6。
思路分析:
本題很簡單,因此計(jì)算重心從解題轉(zhuǎn)化為優(yōu)化。
本題為重復(fù)計(jì)算,但只有算完一項(xiàng)后,才知道它是否小于10^-6,也就是說,循環(huán)終止判斷是在計(jì)算之后,而不是計(jì)算之前,因此最佳解法顯然是使用do-while循環(huán),但紫書中并未給出該種解法,因此筆者寫了這篇博文以供參考
代碼:
#include<cstdio> int main() {double num = 1, n = 1;bool flag = false;do {flag ? (num += 1/(n*2+1)) : (num -= 1/(n*2+1)) ;flag = !flag; }while((1/((n++)*2+1)) >= 1e-6);printf("%.6f", num);return 0; }擇苦而安,擇做而樂,虛擬現(xiàn)實(shí)終究比不上真實(shí)精彩之萬一。
總結(jié)
以上是生活随笔為你收集整理的11行代码AC——比紫书优化,例题2-3 近似计算——解题报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编译原理实验报告_任意给定一个正规式 r
- 下一篇: int、long、long long _