java程序在不使用%运算符的情况下找到m%n,我只使用%,有没有人可以帮助我而不使用%运算符?
public class mod{
public static void main(String[] args){
int m=3, n=2;
System.out.print("m%n is"+m%n);
}}
我想找到没有%运算符的m%n
答案 0 :(得分:4)
你不需要加倍。你可以做到
int mod = m - m / n * n;
剩余部分是作为除法的结果计算的,并且许多cpus在单个操作中具有整数除法和余数。因此,将它们组合在一起是个好主意,因此JIT可以对它们进行优化。例如以下代码可以是单个机器代码指令
int a = m / n;
int b = m % n;
这种组合非常适合将整数转换为文本,因为/ 10
和% 10
组合使用。
答案 1 :(得分:3)
就像
一样简单m - n * (m / n);
答案 2 :(得分:2)
n * ((double)m / n - m / n)
是单向的。
这是有效的,因为m / n
将以整数运算执行,但(double)m / n
由于其中一个整数的提升而处于浮点状态。
答案 3 :(得分:1)
有数百种方法可以做到这一点,以及除法/乘法方法,你也可以做这样的事情,例如:
while (m>=n)
m-=n;
如果所有循环都被禁止,不仅仅是循环,而且还有诸如递归之类的选项,那就越难了。
答案 4 :(得分:1)
试试这个:
System.out.print("m%n is"+(m-m/n*n));
答案 5 :(得分:1)
你也可以:
m - (m / n) * n;