Một chương trình đảo ngược các chữ số của một số sẽ hoán đổi vị trí của các chữ số và đảo ngược thứ tự đó.
Giả sử là một số abcde thì ngược lại sẽ là edcba.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào
n = 786521
Đầu ra
125687
Để đảo ngược các chữ số của số, chúng ta sẽ lấy từng chữ số của số từ MSB (chữ số hàng đơn vị) và thêm nó vào biến số đảo ngược, sau khi chia số ban đầu cho 10 và số đảo ngược được nhân với 10. Điều này sẽ được thực hiện cho đến khi số trở thành 0.
Quá trình lặp đi lặp lại này có thể được thực hiện bằng hai phương pháp, lặp lại và đệ quy, chúng tôi sẽ tạo một chương trình để tạo minh họa cho cả hai phương pháp.
Ví dụ
Phương pháp 1:Phương pháp lặp lại
#include <iostream> using namespace std; int reversDigitsIt(int n) { int reverseNumber = 0; while(n > 0){ reverseNumber = reverseNumber*10 + n%10; n /= 10; } return reverseNumber; } int main() { int n = 4562; cout<<"The number is : "<<n<<endl; cout<<"Reverse of number is "<<reversDigitsIt(n); return 0; }
Đầu ra
The number is : 4562 Reverse of number is 2654
Ví dụ
Phương pháp 2:Phương pháp tiếp cận đệ quy
#include <iostream> using namespace std; int reverseNumber = 0; int numPos = 1; void reversDigitsRec(int n) { if(n > 0){ reversDigitsRec(n/10); reverseNumber += (n%10)*numPos; numPos *= 10; } } int main() { int n = 4562; cout<<"The number is : "<<n<<endl; reversDigitsRec(n); cout<<"Reverse of number is "<<reverseNumber; return 0; }
Đầu ra
The number is : 4562 Reverse of number is 2654