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

 我来答
lyz810
推荐于2017-10-13 · 知道合伙人互联网行家
lyz810
知道合伙人互联网行家
采纳数:7531 获赞数:31775
前端开发工程师

向TA提问 私信TA
展开全部
%为取模或取余运算
对于整型数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则为取模。
匿名用户
2013-06-15
展开全部
求模就是求余数,除不尽的部分就被当做余数来处理,5%5没有余数,所以答案是0
一般求余数都是2个整数之间的运算,但是java里面除了 布尔类型的不能做求模运算外,其他的都可以。
5%-2 = -2 余1所以答案是1
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圣鸾OJ
2015-09-29 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:108万
展开全部
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<num/2;i+=2){
//如果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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式