问题标题:
求圆周率的一行代码看不懂,求教!r=(i%4==1)?r+f:r-f;是神马意思?#includeusingnamespacestd;doublearctan(doublex){doublesqr=x*x;doublee=x;doubler=0;inti=1;while(e/i>1e-15){doublef=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=
问题描述:
求圆周率的一行代码看不懂,求教!r=(i%4==1)?r+f:r-f;是神马意思?
#include
usingnamespacestd;
doublearctan(doublex)
{
doublesqr=x*x;
doublee=x;
doubler=0;
inti=1;
while(e/i>1e-15)
{
doublef=e/i;
r=(i%4==1)?r+f:r-f;
e=e*sqr;
i+=2;
}
returnr;
}
intmain()
{
doublea=16.0*arctan(1/5.0);
doubleb=4.0*arctan(1/239.0);
cout
沈锡臣回答:
r=(i%4==1)?r+f:r-f;//用到的是?:这个运算符,这是一个三元运算符,用法为:(判断条件)?选择1:选择2,如果判断条件为真就选择1,否则选择2,.i%4==1是判断条件,判断i%4的余数是否为1,如果是则r=r+f,否则r=r-f.
点击显示
其它推荐
热门其它推荐