java取余算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java取余算法相关的知识,希望对你有一定的参考价值。

不用%怎么实现?我只想到一个笨方法:逼近判断。求好方法

取余运算符是“%”它是一个双目运算符,它的操作数通常是正整数也可以是负数甚至是浮点数,如果负数参与此运算,则需要特别注意,对于整数,java的取余运算规则如下
a%b=a-(a/b)*b
例如
5%3=5-(5/3)*3=2
5%-3=5-(5/-3)*-3=2
-5%3=-5-(-5/3)*3=-2
-5%-3=-5-(-5/-3)*-3=-2
如果操作数中有浮点数则采用的规则为
a%b=a-(b*q),这里q=int(a/b)
5.2%3.1=5.2-1*3.1=2.1
5.2%-3.1=5.2-(-1)*(-3.1)=2.1
-5.2%3.1=-5.1-(-1)*3.1=-2.1
-5.2%-3.1=-5.1-(-1)*(-3.1)=-2.1
参考技术A public class test

public static void main(String[] args)
int x = 17 ;
int y = 3 ;
int z = x / y ;//只保留整数,为5,17/3 = 5 2/3
int m = x - y * z ; //明白了吧
System.out.println(m);




这样就可以实现%的作用了 运行一下看看吧本回答被提问者采纳
参考技术B public class www

/**
* @param args
*/
public static void main(String[] args)
int x = 17 ;
int y = 3 ;
int z = x / y ;
int m = x - y * z ;
System.out.println(m);




这样就可以实现%的作用了 运行一下看看吧
参考技术C void go()
int a,b;//a为被除数,b为除数
while(a-b>b)

a-=b;

a=a-b;//取得余数
参考技术D 智慧呀 人才呀

最大公约数和最小公倍数算法


 // 最大公约数算法
 // 1. a % b 进行取余运算
 // 2. 将被取余数与余数进行再次取余运算
 // 3. 直到a % b为0时停止取余运算
 // 4. 将取余为0时的被取余数返回即是最大公约数
 function gcd(a, b) {
    if (b === 0) {
       return a;
    }
    return gcd(b, a % b);
 }

// 求多个数的最大公约数
const empsColumns = {
   Salary: [40000, 50000, 44000, 55000, 62000]
}
const w = empsColumns.Salary.reduce(gcd)

 // 最小公倍数算法
 // a * b 得到的结果 / gcd(a,b) 得到最小公倍数
 function lcm(a, b) {
    return a * b / gcd(a,b)
 }

以上是关于java取余算法的主要内容,如果未能解决你的问题,请参考以下文章

java中取余运算符 (%)

java里取余的问题

java取余。刚开始学习java 遇到这种问题就犯迷,求各位大神讲解一下。 8%2 //

java 分别 取昨天零点 和 二十四点

快速幂取余

java中的整除和取余有啥细节。