Skip to main content

How To Think Like a Computer Scientist C++ Edition The Pretext Interactive Version

Section 4.1 The Modulus Operator

The modulus operator works on integers (and integer expressions) and yields the remainder when the first operand is divided by the second. In C++, the modulus operator is a percent sign, %. The syntax is exactly the same as for other operators:
Listing 4.1.1. This program shows the difference between the division operator and the modulus operator.
The first operator, integer division, yields 2. The second operator yields 1. Thus, 7 divided by 3 is 2 with 1 left over.
The modulus operator turns out to be surprisingly useful. For example, you can check whether one number is divisible by another: if x % y is zero, then x is divisible by y.
Also, you can use the modulus operator to extract the rightmost digit or digits from a number. For example, x % 10 yields the rightmost digit of x (in base 10). Similarly x % 100 yields the last two digits.

Checkpoint 4.1.1.

How do you know whether the variable x is odd?
  • Use x % 2, and if the result is 0, it is odd.
  • If you divide a number by two and it has no remainder, that means it is an even number!
  • Use x % 2, and if the result is 1, it is odd.
  • If you divide a number by two and it has a remainder of one, that means it is an odd number!
  • Use x / 2, and if the result is 0, it is odd.
  • Dividing a number by two won’t give us the information we want.
  • Use x / 2, and if the result is 1, it is odd.
  • Dividing a number by two won’t give us the information we want.

Checkpoint 4.1.2.

You have attempted 1 of 4 activities on this page.