Home > C / C++ > Học C++ căn bản và nâng cao > C++ - Đảo ngược một số nguyên bất kỳ được nhập từ bàn phím

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:

ex for 1 JPG

Khi nhập số là 65432:

ex for 2 JPG

Nguồn: freetuts.net

7. Bài tập vòng lặp for trong C++
C++ - In tất cả các số chẵn từ 1 đến n được nhập từ bàn phím
C++ - Đảo ngược một số nguyên bất kỳ được nhập từ bàn phím
C++ - In ra hình tam giác với các ký tự *
C++ - In ra màn hình bảng cửu chương của một số nhập từ bàn phím
C++ - Tính giai thừa của một số được nhập từ bàn phím
C++ - Tìm tất cả ước của một số nguyên được nhập từ bàn phím
C++ - Tính lũy thừa của một số nguyên được nhập từ bàn phím
C++ - Tìm ước chung lớn nhất của 2 số nguyên được nhập từ bàn phím

BÀI VIẾT

notice png LIST home png HOME hot gif BÁO
LỖI
top png TOP