Tổng các chữ số của một số nguyên dương trong C++

Sau khi đã tìm hiểu cách đếm số chữ số của một số nguyên dương trong C++, chúng ta cũng có thể tính tổng các chữ số của một số nguyên dương trong C++. Điều này sẽ giúp chúng ta hiểu rõ hơn về cách làm việc với các chữ số của một số nguyên.

Cách tính tổng các chữ số

Có một số bước đơn giản để tính tổng các chữ số của một số nguyên dương trong C++:

Bước 1:

Khai báo một biến để lưu giá trị của số nguyên dương.

Bước 2:

Sử dụng vòng lặp để lấy từng chữ số của số nguyên đó.

Bước 3:

Trong mỗi lần lặp, ta lấy phần dư của phép chia số nguyên đó cho 10 để được chữ số cuối cùng của số đó.

Bước 4:

Cộng giá trị chữ số cuối cùng lấy được vào biến tổng.

Bước 5:

Sau đó, chia số đó cho 10 để xóa chữ số cuối cùng của số đó. Tiếp tục lặp lại cho đến khi số đó bằng 0.

Bước 6:

Cuối cùng, ta in ra tổng các chữ số đó.

Sử dụng vòng lặp để tính tổng các chữ số

Trong bài này, chúng ta sẽ hướng dẫn cách sử dụng vòng lặp while, for, và do...while để tính tổng các chữ số của một số nguyên dương trong C++.

1. Sử dụng vòng lặp while

Ở bài trước, chúng ta đã sử dụng vòng lặp while để đếm số chữ số của một số nguyên dương. Bây giờ, chúng ta sẽ sử dụng vòng lặp này để tính tổng các chữ số. Dưới đây là đoạn chương trình C++ minh hoạ:

#include 
using namespace std;

int main() {
    int n, sum = 0;

    cout << "Nhập vào một số nguyên: ";
    cin >> n;

    while (n != 0) {
        sum += n % 10;
        n /= 10;
    }

    cout << "Tổng các chữ số của số nguyên là: " << sum << endl;

    return 0;
}

Trong đoạn chương trình trên, chúng ta sử dụng biến n để lưu giá trị số nguyên được nhập vào và biến sum để tính tổng các chữ số. Trong vòng lặp while, chúng ta lấy phần dư của n khi chia cho 10 để lấy chữ số cuối cùng và cộng vào biến sum. Sau đó, chúng ta chia n cho 10 để xóa chữ số cuối cùng và tiếp tục lặp lại quá trình cho đến khi n bằng 0.

2. Sử dụng vòng lặp for

Nếu bạn không muốn sử dụng vòng lặp while, bạn có thể sử dụng vòng lặp for để tính tổng các chữ số. Dưới đây là đoạn chương trình C++ minh hoạ:

#include 
using namespace std;

int main() {
    int n, sum = 0;

    cout << "Nhập vào một số nguyên: ";
    cin >> n;

    for (int i = n; i > 0; i /= 10) {
        sum += i % 10;
    }

    cout << "Tổng các chữ số của số nguyên là: " << sum << endl;

    return 0;
}

Trong vòng lặp for, chúng ta khởi tạo giá trị ban đầu của biến i bằng n. Sau đó, mỗi lần lặp, chúng ta gán lại i bằng i / 10. Trong lệnh tính tổng sum += i % 10;, chúng ta lấy phần dư của i khi chia cho 10 và cộng vào biến sum. Vòng lặp for chỉ dừng khi i bằng 0.

3. Sử dụng vòng lặp do…while

Nếu bạn muốn sử dụng vòng lặp do...while để tính tổng các chữ số của một số nguyên, cách thực hiện sẽ hoàn toàn giống với while về điều kiện dừng, cách tính tổng và cách chia số nguyên cho 10. Dưới đây là đoạn chương trình C++ minh hoạ:

#include 
using namespace std;

int main() {
    int n, sum = 0;

    cout << "Nhập vào một số nguyên: ";
    cin >> n;

    do {
        sum += n % 10;
        n /= 10;
    } while (n != 0);

    cout << "Tổng các chữ số của số nguyên là: " << sum << endl;

    return 0;
}

4. Sử dụng hàm đệ quy

Ngoài sử dụng vòng lặp, chúng ta cũng có thể sử dụng hàm đệ quy để tính tổng các chữ số của một số nguyên. Dưới đây là đoạn chương trình C++ minh hoạ:

#include 
using namespace std;

int sumOfDigits(int n) {
    if (n == 0) {
        return 0;
    }
    return n % 10 + sumOfDigits(n / 10);
}

int main() {
    int n;

    cout << "Nhập vào một số nguyên: ";
    cin >> n;

    cout << "Tổng các chữ số của số nguyên là: " << sumOfDigits(n) << endl;

    return 0;
}

Trong chương trình trên, chúng ta sử dụng hàm sumOfDigits để tính tổng các chữ số. Hàm này lấy một số nguyên làm tham số và sử dụng đệ quy để chia số đó cho 10. Nếu tham số của hàm sumOfDigits bằng 0, thì hàm sẽ trả về 0, đây là điều kiện dừng của hàm đệ quy.

Trong hàm main, chúng ta nhập một số nguyên dương từ người dùng và gọi hàm sumOfDigits để tính tổng các chữ số. Sau đó, chúng ta in ra kết quả.

Tìm hiểu cách tính tổng các chữ số của một số nguyên dương trong C++ sẽ giúp chúng ta hiểu rõ hơn về cách làm việc với các phép toán số học và vòng lặp trong ngôn ngữ lập trình C++.

FEATURED TOPIC