求圆周率的一行代码看不懂,求教!r=(i%4==1)?r+f:r-f;是神马意思?

求圆周率的一行代码看不懂,求教!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

问答/426℃/2022-09-25 15:29:31

优质解答:

=(i%4==1)?r+f:r-f; //用到的是?:这个运算符,这是一个三元运算符,用法为:(判断条件)?选择1:选择2, 如果判断条件为真就选择1,否则选择2,.i%4==1是判断条件,判断i%4的余数是否为1,如果是则r=r+f ,否则r=r-f.

我来回答

猜你喜欢

Copyright © 作文乐园 Inc.
Www.821218.Com All Rights Reserved
网站、品牌合作请联系