大神帮我看看这串函数用c怎么写
用最简单的for,while,if这些语句怎么写{:10_266:} 只有1.500000,怎么看也不可能pi/2int main ()
{
double i=1,sum=0,prt=1,prv=1;
while(prv/prt>1/1000000)
{
sum+=prv/prt;
printf("%lf,%lf,%lf\n",prv,2*(i-1)+1,sum);
prv=i;
i++;
prt*=2*(i-1)+1;
}
return 0;
}
1.000000,1.000000,1.000000
1.000000,3.000000,1.333333
2.000000,5.000000,1.466667
3.000000,7.000000,1.495238
4.000000,9.000000,1.499471
5.000000,11.000000,1.499952
6.000000,13.000000,1.499996
7.000000,15.000000,1.500000
8.000000,17.000000,1.500000
9.000000,19.000000,1.500000
……
本帖最后由 jhq999 于 2021-11-13 17:15 编辑
原来上面分子是乘阶
int main()
{
double i=1,sum=0,prt=1,prv=1;
while(prv/prt>1/1000000)
{
sum+=(prv)/prt;
printf("%.7lf,%.7lf,%.7lf\n",i,2*(i-1)+1,sum);
prv*=i;
prt*=2*i+1;
i++;
}
return 0;
}
……
144.0000000,287.0000000,1.5707963
145.0000000,289.0000000,1.5707963
146.0000000,291.0000000,1.5707963
147.0000000,293.0000000,1.5707963
148.0000000,295.0000000,1.5707963
149.0000000,297.0000000,1.5707963
150.0000000,299.0000000,1.5707963
我初学,发下我写的#include<stdio.h>
int main()
{
int n,a=3,i=1,c=1;
double pi,sum=1;
scanf("%d",&n);
while(i<=n){
a=a*i;
i+=2;
sum+=1.0*c/a;
c++;
}
pi=2*sum;
printf("%.7lf\n",pi);
return 0;
}
条件没想好,我觉得N要大于等于17就能满足你的条件
页:
[1]