原题链接:C语言训练-求PI*
解题思路:
把问题转化为,求前N(每个N为公式中的分数)个数的和,直到fabs(N)<1E-6结束;
用while循环控制,PI/4=+1/1 -1/3 +1/5 -1/7 +1/9 ........
定义浮点型变量denominator表示分母,分子的变化pow(-1,i) i从0开始,逐次加1;
分母和PI定义为浮点型,若分母为整型,输出结果为4.000000;
参考代码:
c++:
#include <iostream> #include <iomanip> #include <math.h> using namespace std; int main() { double PI = 0, denominator = 1;; int i = 0; while ( 1 / denominator >= 1E-6 ) { PI += (pow( -1, i ) / denominator); denominator += 2; i++; } cout << fixed << setprecision( 6 ) << PI * 4; return(0); }
c:
#include <stdio.h> #include <math.h> int main() { double PI = 0, denominator = 1;; int i = 0; while ( 1 / denominator >= 1E-6 ) { PI += (pow( -1, i ) / denominator); denominator += 2; i++; } printf( "%.6f", PI * 4 ); return(0); }
别忘点赞哦-.-
0.0分
7 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复