Giả sử chúng ta có một số gồm năm chữ số num. Chúng ta sẽ phải tìm tổng các chữ số của nó. Để làm điều này, chúng ta sẽ lấy ra các chữ số từ phải sang trái. Mỗi lần chia số cho 10 và phần dư sẽ là chữ số cuối cùng và sau đó cập nhật số theo thương của nó (chỉ phần nguyên) và cuối cùng số sẽ giảm xuống 0 ở cuối. Vì vậy, bằng cách cộng các chữ số, chúng ta có thể nhận được tổng cuối cùng.
Vì vậy, nếu đầu vào là num =58612, thì đầu ra sẽ là 22 vì 5 + 8 + 6 + 1 + 2 =22.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- num:=58612
- sum:=0
- trong khi num không bằng 0, hãy thực hiện:
- sum:=sum + num mod 10
- num:=num / 10
- trả về tổng
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#include <stdio.h> int main(){ int num = 58612; int sum = 0; while(num != 0){ sum += num % 10; num = num/10; } printf("Digit sum: %d", sum); }
Đầu vào
58612
Đầu ra
Digit sum: 22