求圆周率的一行代码看不懂,求教!r=(i%4==1)?r+f:r-f;是神马意思?#includeusing namespace std;double arctan(double x){double sqr=x*x;double e=x;double r=0;int i=1;while(e/i>1e-15){double f=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 16:36:54

求圆周率的一行代码看不懂,求教!r=(i%4==1)?r+f:r-f;是神马意思?#includeusing namespace std;double arctan(double x){double sqr=x*x;double e=x;double r=0;int i=1;while(e/i>1e-15){double f=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=
求圆周率的一行代码看不懂,求教!r=(i%4==1)?r+f:r-f;是神马意思?
#include
using namespace std;
double arctan(double x)
{
double sqr=x*x;
double e=x;
double r=0;
int i=1;
while(e/i>1e-15)
{
double f=e/i;
r=(i%4==1)?r+f:r-f;
e=e*sqr;
i+=2;
}
return r;
}
int main()
{
double a=16.0*arctan(1/5.0);
double b=4.0*arctan(1/239.0);
cout

求圆周率的一行代码看不懂,求教!r=(i%4==1)?r+f:r-f;是神马意思?#includeusing namespace std;double arctan(double x){double sqr=x*x;double e=x;double r=0;int i=1;while(e/i>1e-15){double f=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=
r=(i%4==1)?r+f:r-f; //用到的是?:这个运算符,这是一个三元运算符,用法为:(判断条件)?选择1:选择2, 如果判断条件为真就选择1,否则选择2,.i%4==1是判断条件,判断i%4的余数是否为1,如果是则r=r+f ,否则r=r-f.