编写一个程序来反转一个数字的位数
反转数字位的程序将互换各位数字的顺序。
让我们假设一个数字为 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
广告