本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。
2π=1+31!+3×52!+3×5×73!+⋯+3×5×⋯×(2×i+1)i!+⋯
输入格式:
输入在一行中给出精度eps,可以使用以下语句来读输入:
scanf("%le", &eps);
输出格式:
在一行内,按照以下格式输出π的近似值(保留小数点后5位):
PI = 近似值
输入样例:
1E-5
输出样例:
PI = 3.14158
#include <stdio.h>
double jiecheng(int n){
if(n==0){return 1;}
else{return n*jiecheng(n-1);}
}
double ji(int n){
if(n==1){ return 3;}
else {return ((2*n+1)*ji(n-1));}
}
int main(){
double eps;
scanf("%le",&eps);
double sum=1.0;
int i;
for(i=1;;i++){
double temp=jiecheng(i)/ji(i)*1.0;
sum=sum+temp;
if(temp<eps){break; }
}
printf("PI = %.5lf\n",2*sum);
return 0;}
球球 我刚刚学了递归函数 想用递归函数做 这样究竟错在哪儿了
评测详情
测试点 | 提示 | 内存(KB) | 用时(ms) | 结果 | 得分 | |
0 | 384 | 4 | 答案正确 | 9 / 9 | ||
1 | 356 | 8 | 答案正确 | 3 / 3 | ||
2 | 196 | 4 | 答案错误 | 0 / 3 |