Java求余数用法介绍(java运算中的取余)

一、什么是余数

1、余数的概念

余数指的是一个数除以另外一个数所剩下的数量,余数通常用符号”%”表示。在Java中,求余数运算符是“%”,例如x%y表示x除以y的余数。

2、余数的定义

余数的定义可以归纳为:被除数(被除数a)减去除数(除数n)的乘积,即a-n*(a/n)。

  int a = 17;
  int b = 3;
  int c = a % b; 
  System.out.println(c); // 输出1

二、求余数的应用

1、余数的判断

对于判断一个数是否为另外一个数的倍数时,可以利用余数的性质判断。如果一个整数n除以另一个整数m时余数为0,则n是m的倍数;否则n不是m的倍数。

  int a = 15;
  int b = 3;
  if(a % b == 0) {
      System.out.println(a + "是" + b + "的倍数");
  } else {
      System.out.println(a + "不是" + b + "的倍数");
  } // 输出15是3的倍数

2、取模运算

在计算机中,经常会使用取模运算(modulus operation),它返回两个整数相除的余数。Java中使用%运算符进行取模运算。

下面代码将给出绝对值函数的实现,这个实现使用%运算符来实现,它还考虑了0值的特殊情况。

  public static int abs(int x) {
      if (x == Integer.MIN_VALUE) return -(x + 1); 
      if (x < 0) x = -x;
      return (x < 0) ? -x : x;
  }

三、余数的性质

1、余数的循环性

在一些情况下,计算余数时发现计算结果呈现循环节。例如,1除以3的余数是1,4除以3的余数是1,7除以3的余数是1,10除以3的余数是1,以此类推。可以通过下面代码实现:

  int b = 3;
  for(int i = 1; i < 20; i++) {
      System.out.println(i + " 除以 " + b + " 的余数是: " + i % b);
  } // 输出1、2、0、1、2、0、1、2......

2、余数的加法性质

如果a = nk1 + r1,并且b = nk2 + r2,n、k1、k2、r1、r2是常数,则有:

a + b = n(k1 + k2) + (r1 + r2)

例如,如果a和b都是奇数,则a+b是偶数,因为1除以2的余数是1。可以通过下面代码实现:

  int a = 3;
  int b = 5;
  if(a % 2 == 1 && b % 2 == 1) {
      System.out.println(a + " + " + b + " = " + (a + b) + " 是偶数");
  } // 输出3 + 5 = 8 是偶数

四、余数的注意事项

1、除数不能为0

在Java里,如果一个整数n除以0,Java虚拟机将抛出ArithmeticException异常。

  int a = 5;
  int b = 0;
  try {
      int c = a % b;
  } catch(ArithmeticException e) {
      System.out.println("发生了异常:" + e.getMessage());
  } // 抛出异常:"Division by zero"

2、Java中取模运算的规则

Java中,取模(%)运算的符号和被除数相同。

  int a = -14;
  int b = 3;
  int c = a % b;  // -2,-14 = (-5) * 3 + (-2)

五、总结

本文详细讲解了Java中的余数运算及其应用和性质,让读者对Java求余数有了更深刻的理解。在编程中,灵活使用余数运算可以避免过多的if-else判断和循环,提高编码效率。但需要注意的是,除数不能为0,并且在Java中取模(%)运算的符号和被除数相同。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平