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取余算法的主要内容,如果未能解决你的问题,请参考以下文章