13-01
题目问题描述:
思路分析:
问题:
- 1e-5是什么?
- 如何找到最后一项小于1e-5;
- 怎么求Π的近似值;
- 正负号如何解决;
解决:
- 1e-5的意思就是1乘以10的负5次幂.就是0.00001
- 利用while循环,当最后一项小于1e-5时跳出循环;
- 利用sum累加最后一项;
- 设置flag为符号位,每加一项取反一次;
- 注意:初值的设定,分母和flag都要设为1;
结果截图:
实现代码:
#include<stdio.h>
#include<math.h>
int main(){
double last = 1.0;;//最后一项
double sum = 0; //各项总和
int flag = 1; //正负号
int fm = 1; //分母
double pai = 0; //pai的近似值
while(fabs(last) >= 1e-5){
last = flag * 1.0/ fm; //最后一项
fm += 2; //分母自增2
flag = -flag; //取反,‘+-+-...’
sum += last;
}
pai = sum * 4; //公式中是pai/4;
printf("%.5f\n",pai);
}
实现代码答:
#include<stdio.h>
#include<math.h>
double funpi(double e);
int main(){
double pi;
pi=funpi(0.00001);
printf("pi=%.5f\n", pi);
return 0;
}
double funpi(double e){
int denominator, flag;
double item, sum;
flag = 1;
denominator = 1;
item = 1.0;
sum = 0;
while(fabs(item) >= e){
item = flag * 1.0 / denominator;
sum = sum + item;
flag = -flag;
denominator = denominator + 2;
}
return sum * 4;
}