Menu
CoddyTech

Toán tử chia lấy dư

Thuộc phần Kiến thức cơ bản trong hành trình PHP của Coddy. Bài học 16 trên 71.

Toán tử modulo (%) trả về số dư sau phép chia. Khi chia một số cho một số khác, toán tử modulo cho bạn biết phần còn lại.

<?php
echo 10 % 3; // Đầu ra: 1
?>

Ở đây, 10 chia 3 bằng 3 dư 1. Toán tử modulo trả về phần dư đó.

Một cách dùng phổ biến của phép modulo là kiểm tra xem một số là chẵn hay lẻ. Khi chia cho 2, số dư là 0 nếu số đó chẵn và 1 nếu số đó lẻ (-1 nếu số lẻ đó âm), vì vậy nếu một số chia cho 2 không có số dư thì đó là số chẵn; nếu không thì đó là số lẻ:

<?php
$number = 8;
echo $number % 2; // In ra: 0 (số chẵn)

$number = 7;
echo $number % 2; // In ra: 1 (số lẻ)
?>

Cách này chỉ dùng được để kiểm tra số chẵn/lẻ vì khi chia cho 2, số dư luôn là 0 hoặc 1 (hoặc -1 nếu số lẻ âm). Với các số chia khác, khi cả hai số đều dương, số dư có thể nhận bất kỳ giá trị nào từ 0 đến nhỏ hơn số chia 1 đơn vị. Kết quả mang dấu của số bị chia, vì vậy -17 % 5 bằng -2.

Thêm ví dụ giúp bạn hiểu quy luật này:

<?php
echo 15 % 4; // In ra: 3 (15 = 4*3 + 3)
echo 20 % 5; // In ra: 0 (20 = 5*4 + 0)

$dividend = 17;
$divisor = 5;
echo $dividend % $divisor; // In ra: 2 (17 = 5*3 + 2)
?>
challenge icon

Thử thách

Dễ

Đọc hai số từ đầu vào: số bị chia và số chia.

Tính và in ra số dư khi chia số thứ nhất cho số thứ hai.

Ví dụ:

Nếu đầu vào là 17 và 5, đầu ra sẽ là 2 (vì 17 ÷ 5 = 3, dư 2).

Tự làm thử

<?php
// Đọc đầu vào
$dividend = intval(fgets(STDIN));
$divisor = intval(fgets(STDIN));

// TODO: Viết code bên dưới để tính số dư


// In kết quả ra
echo $remainder;
?>
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Trình biên dịch PHP online