编写一个程序来反转一个数字的位数
反转数字位的程序将互换各位数字的顺序。
让我们假设一个数字为 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP