%是取模运算,结果是余数,和/(除)可以对比。java中int做除运算会把小数部分直接去掉。
我们提供的服务有:成都做网站、成都网站建设、微信公众号开发、网站优化、网站认证、娄星ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的娄星网站制作公司
7/5=1 (余2) 7%5=2
12345/10=1234 (余5) 12345%10=5
整数之间的取模求余运算很好求,但几乎没有遇到过对负数进行取模求余,直接看下面代码:
Java代码
/**
*
* @author Logic
*
*/
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("-3%-2=" + -3%-2);
System.out.println("3%-2=" + 3%-2);
System.out.println("-3%2=" + -3%2);
}
}
/**
* Result
* -3%-2=-1
* 3%-2=1
* -3%2=-1
*/
java的取模运算支持类型:字符型(自然不包括负数)、字节型、短整型、整型、长整型、单精度浮点型、双精度浮点型。
取余是一个比较常见的运算,在各种编程语言中均有相应的运算符(Java/C的%, Pascal/Delphi的mod等等)。Java取余运算符 (%)一个表达式的值除以另一个表达式的值,返回余数。
result = number1 % number2
参数:result 任何变量。number1 任何数值表达式。number2 任何数值表达式。
更小学的数学一样:
12345 % 10 意思是12345 除以10后取结果的余数
小学除法 : 12345 ÷ 10 = 1234...5
5是余数,取模也叫取余,顾名思义,结果是5
public class Caixiang{
public static void main(String[] args) throws Exception {
int n=1;
while(n0){
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;inum/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,1,-1,-1
按照我的理解,a%b的结果c就是在(-|b|,|b|)内的a+kb值,k是整数,c的正负取决于a的正负