C++ - Đảo ngược một số nguyên bất kỳ được nhập từ bàn phím

Viết chương trình đảo ngược một số nguyên bất kỳ được nhập từ bàn phím. Ví dụ: 12345, đảo ngược lại thành 54321

Bài giải

-------------------- ######## --------------------

Cách giải bài toán trên như sau:

  • Nhập số một số nguyên bất kỳ từ bàn phím, ta gọi đó là biến so
  • Sử dụng vòng lặp for để tách từng số riêng lẻ trong một số. Theo nguyên tắc một số có hàng đơn vị, hàng chục, hàng trăm... là lũy thừa của 10, theo thứ tự lần lượt là hàng đơn vị là lũy thừa 0 của 10, hàng chục là lũy thừa 1 của 10, hàng trăm là lũy thừa 2 của 10...
  • Bắt đầu tách từ hàng đơn vị vì hàng đơn vị là lũy thừa 0 của 10 (100 = 1) của nên chỉ lấy số đó chia 10 lấy phần dư, ví dụ 12345 chia 10 lấy phần dư được 5
  • Tiếp theo tách từ hàng chục bằng cách chia số đó cho 101 = 10 lấy phần nguyên, sau đó lấy kết quả đó chia 10 lấy phần dư, ví dụ 12345 chia cho 10 được 1234, sau đó lấy 1234 chia 10 lấy phần dư được 4.
  • Tiếp theo tách từ hàng trăm bằng cách chia số đó cho 102= 100 lấy phần nguyên, sau đó lấy kết quả đó chia 10 lấy phần dư, ví dụ 12345 chia 100 được 123, sau đó lấy 123 chia 10 lấy phần dư được 3
  • Tiếp tục đến hàng ngàn, chục ngàn... tương tự như trên là chia cho lũy thừa của 10 (lần lượt lũy thừa là 3, 4...) lấy phần nguyên, sau đó lấy kết quả đó chia cho 10 lấy phần dư, cho đến khi số ban đầu nhập vào từ bàn phím bằng 0 thì kết thúc vòng lặp.

Chúng ta cùng giải bài toán trên bằng cách sử dụng vòng lặp for trong C++ như sau:

#include <iostream>
using namespace std;

int main()
{
    int so;
    cout << "Nhap so: ";
    cin >> so;
    cout << "So dao nguoc cua " << so  << " la ";
    for (; so != 0; so = so / 10) {
        cout << so % 10;
    }
    return 0;
}

Và kết quả sau khi thực thi chương trình trên như sau:

Khi nhập số là 12345678:

Khi nhập số là 65432:

Nguồn: freetuts.net