숫자의 자릿수를 바꾸는 프로그램은 숫자의 위치를 바꾸고 순서를 반대로 합니다.
숫자를 abcde라고 가정하고 그 반대는 edcba입니다.
문제를 이해하기 위해 예를 들어 보겠습니다.
입력
n = 786521
출력
125687
숫자의 자릿수를 바꾸려면 MSB(단위 자릿수)에서 숫자의 각 자릿수를 가져와 역 숫자 변수에 추가합니다. 그런 다음 원래 숫자를 10으로 나누고 reverse_number에 10을 곱합니다. 숫자가 0이 됩니다.
이 반복적인 과정은 반복과 재귀의 두 가지 방법으로 수행할 수 있으며 두 가지 방법을 모두 설명하는 프로그램을 작성합니다.
예시
방법 1:반복적 접근
#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; }
출력
The number is : 4562 Reverse of number is 2654
예시
방법 2:재귀적 접근
#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; }
출력
The number is : 4562 Reverse of number is 2654