編寫一個程式來反轉一個數字的位數


反轉數字位的程式將互換各位數字的順序。

讓我們假設一個數字為 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 次瀏覽

啟動你的 職業

完成課程以獲得認證

開始
廣告
© . All rights reserved.