JAVA算术运算符里的取模(%)怎么计算的?例如5%5运行结果就是0, 5%-2运行结果是1,这是怎么得来的?

2024-11-21 17:46:35
推荐回答(3个)
回答(1):

%为取模或取余运算
对于整型数a,b来说,取模运算或者求余运算的方法都是:
1.求整数商: c = a/b;
2.计算握桐模或者余数: r = a - c*b.
例如:计算-7 Mod 4
那么:a = -7;b = 4;
第一步:求整数商c,如进行求模运算c = -2(向负无穷方向舍入),求余c = -1(向0方向舍入)
第二步:段锋坦计算模和余数的公式相同,但因c的值不同,求模时r = 1,求余时r = -3。
归纳:当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。
当符号不一致时基清,结果不一样。求模运算结果的符号和b一致,求余运算结果的符号和a一致。
另外各个环境下%运算符的含义不同,比如c/c++,java 为取余,而python则为取模。

回答(2):

求模就是求余数,除不尽的部分就被当做余数来处隐腊滚理,5%5没有余数,所以答案是0
一般求余数局锋都是2个整数之间的运算,但是java里面除了 布尔类型的不能灶余做求模运算外,其他的都可以。
5%-2 = -2 余1所以答案是1

回答(3):

public class Caixiang{
public static void main(String[] args) throws Exception {
int n=1;
while(n>0){
System.out.println("请重新输入一个大于6的偶数,若退出请输入0:");
int num=SystemIn.readInt();
int time=0;
if(num==0)
System.exit(0);
//如果输入的数值小于6或者是奇数则进行提示
while(num<=6||num%2==1){
//次数累加
time++;
System.out.println("您输入的数字不符合要求,您还有"+(3-time)+"请重新输入:");
//不用重复定义,直接调用前面定义的num
num=SystemIn.readInt();
//如果输入的次数超过3次进行提示并退出
if(time==2){
System.out.println("您销碧输入的此处超过限制,请重新运行程序");
System.exit(0);
}
}
//如果这个数等于两个质数的和,进行打印
//进行for循环,查找质数
for(int i=3;i//如果i和num-i的值都为真,进行运纯信算,调用参数
if(zhiShu(i)&&zhiShu(num-i))
System.out.println(i+"+"+(num-i)+"="+num);
}
}
}
//写一个类,证明这个数是质数,如果是,返回true;不是,则返回false
static boolean zhiShu(int k){
//进行质数的判断
for(int i=3;i<(int)(Math.sqrt(k));i+=2)
//如果k对i取模是0,说明不做斗轮是质数,返回false
if(k%i==0) return false;
//否则返回true
return true;
}
}