Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 숫자의 자릿수를 반대로 하는 프로그램 작성

<시간/>

숫자의 자릿수를 바꾸는 프로그램은 숫자의 위치를 ​​바꾸고 순서를 반대로 합니다.

숫자를 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