Đề bài:
Sử dụng hàm để tính tổng các chữ số của một số tự nhiên cho trước trong PHP.
Đáp án:
function sumDigit($number){
$sum = 0;
while($number > 0){
$digit = $number % 10;
$sum = $sum + $digit;
$number = ($number - $digit) / 10;
}
return $sum;
}
$result = sumDigit(232);
echo $result
Các bạn hãy thử sao chép đoạn code trên và chạy thử để xem kết quả nhé.
Giải thích:
Ta sẽ dùng vòng lặp while để kiểm tra biến $number >0 hay không. Nếu False thì dùng vòng lặp, còn nếu True thì lấy $number chia lấy phần dư cho 10 để được số cuối cùng. Tổng lúc này sẽ bằng phần dư chia cho 10.
Tiếp theo,ta sẽ được biến $number mới bằng biến $number cũ trừ khi phần dư và chia cho 10.
Tiếp tục vòng lặp như trên với biến $number mới tới khi nào $number = 0 thì vòng lặp sẽ dừng lại và cộng tổng các phần dư lại ta sẽ có được kết quả.
Ví dụ: Ta có 1 số tự nhiên là 232 = $number
Ban đầu, tổng = 0 và $number = 232, ta tiến hành kiểm tra $number >0 thì chia lấy cho 10 được dư 2, $number mới = (232 - 2) / 10 = 23
Tổng = $sum = $sum + $digit = 0 + 2 = 2
Tiếp theo, $number = 23 >0 vẫn lớn hơn ta tiếp tục vòng lặp, lúc này ta chia lấy dư tiếp cho 10 được dư 3 và $number mới = 2
Tổng = $sum = $sum + $digit = 2+3 = 5
Tiếp theo kiểm tra $number = 2 > 0 , ta lại tiếp tục vòng lặp chia lấy phần dư cho 10 thì được dư 2 và $number = 0
Tổng = 2+3+2 = 7
Lúc này, $number = 0 nên vòng lặp dừng lại.
Kết quả: Tổng các chữ số của số 232 là 7.
Các hãy hãy chạy thử đoạn code bên trên và xem kết quả nhé.
Nếu bạn có bất cứ góp ý nào, xin hãy comment bên dưới bài viết này. Xin cám ơn.