编写一个程序来反转一个数字的位数


反转数字位的程序将互换各位数字的顺序。

让我们假设一个数字为 abcde,则其反转将为 edcba。

举个例子来理解一下这个问题:

输入

n = 786521

输出

125687

要反转数字的位数,我们将从数字(个位数)的最高有效位获取每一位数字并将其添加到反转数字变量中,然后将原始数字除以 10,并将反转数乘以 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

更新时间:17-Apr-2020

525 次浏览

启动你的 职业

完成课程以获得认证

开始
广告