1、数字反转
题目描述
代码实现
(1)通过数学公式求解
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a=0;
cin>>n;
while(n) a=a*10+n%10,n/=10;
cout<<a;
return 0;
}
(2)字符串。通过字符串的第一个元素判断是否为负数,然后从字符串的末尾倒着开始存储到另一个字符串中,最后使用erase函数清除0元素,注意别丢失n=0的情况。
#include<bits/stdc++.h>
using namespace std;
int main(){
string n,l;
cin>>n;
if(n[0]=='-')//判断是负数
{
cout<<n[0];
for(int i=n.length()-1;i>=1;i--){
l+=n[i];
if(l[0]=='0'){
l.erase(0,l.find_first_not_of('0'));
} //清除0元素
}
cout<<l;
}
else if(n=="0") cout<<"0";
else
{
for(int i=n.length()-1;i>=0;i--){
l+=n[i];
}
if(l[0]=='0'){
l.erase(0,l.find_first_not_of('0'));
}
cout<<l;
}
return 0;
}