为了账号安全,请及时绑定邮箱和手机立即绑定

始终不明白int x = (m * 8 / (n + 2)) % m;

在这里,定义x难道不是右边的运算是一个整体吗?我是觉得40/9这个分式再对5取余是无法做到的。为什么大家的解释是先对40/9取整,然后再取余,有点看不懂

正在回答

7 回答

4%5=4是因为4小于5所以取的是它本身

3 回复 有任何疑惑可以回复我~

int x = (m * 8 / (n + 2)) % m;

运算规则应该是先乘后除再取余  有括号的要先计算括号内的  计算结果要看看所求结果需要什么类型 如 int double

0 回复 有任何疑惑可以回复我~

/取商  %取余

40/9=4

4%5=4


5 回复 有任何疑惑可以回复我~
#1

慕少1317773

40/9 =4 我懂。 4%5 我就不懂了。不应该出来是0.8吗,再怎么余怎么跟4沾不上关系
2020-03-24 回复 有任何疑惑可以回复我~

(8m/(n+2))%m    其实只要你理解了java中运算符的优先级问题 应该这个就很好理解了   希望能对你有所帮助

0 回复 有任何疑惑可以回复我~

因为有括号啊,java里面括号的优先权最大。所以肯定是先计算(n+2),再按照乘除的顺序运算m*8/(n+2),最后再取余数%

0 回复 有任何疑惑可以回复我~

如果int x = m * 8 / (n + 2)

然后int y = x % m

这样的话我就明白y的表达式是4 % 5,结果是4.但是int x这样的定义,为什么 int x = (40 / 9)% 5.为什么可以先运算对40/9取整再取余呢,难道右边的表达式不是一个整体吗

0 回复 有任何疑惑可以回复我~

4%5取余商0。余数不就是4吗?

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

始终不明白int x = (m * 8 / (n + 2)) % m;

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号