跪了 求计算步骤哇!
例1:int n=9;n%=n%=2这个算出来答案是0不知道怎么算的
例2:int X=2;x*=x+=++x这个答案是18,也不知道怎么算出来的?
int n=9;
n%=(n%=2) n%=2 9除2余1, n=1
n%=1 1%1=0
n=0
---
int X=2;
x *= (x += (++x)); x=2
x *= (x += (3)); x=3
x *= (6); x=6
6*6=36
1.n%=n%=2,从右到左依次计算,等价于
n%=2;
n%=n;
那么不管前面n是多少,n对自己取余结果肯定是0呀
2.x*=x+=++x,一样,
++x;//3
x+=x;//6
x*=x;//36
我用代码执行出来确定结果是36,为什么会算出18来,那就是算错了呗
我试了一下,你说的不对
第一个答案是:0;
第二个答案是:36;
看图:
我认为的计算方法也非常的简单:
针对“n%=n%=2”,不要想太复杂,这就是一个z=x+y的问题,从左到右解题:
针对“x*=x+=++x”也是一样的: