숫자의 자릿수를 바꾸는 프로그램은 숫자의 위치를 바꾸고 순서를 반대로 합니다.
숫자를 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