对于整数来说,翻转还是比较容易的,在这里有两种方法供大家参考;
1:直接翻转,代码也比较简洁;(方法就是先取余,将最后一位取出来,
再求整商,每次循环乘十,这样就将每个数字分离出来了
#include<iostream> using namespace std; int main() { long long n; cin>>n; long long x=0; while(n!=0) { x=x*10+n%10;//翻转; n/=10; } cout<<x; return 0; }
2:字符串翻转法:
字符串翻转法就是将数字看成一个字符串。但是要判断数字的正负还要考虑末尾的0;
这种方法没有直接翻转好用,但是这种方法也适用小数,分数的翻转。
#include<iostream> #include<cstring> using namespace std; int main() { string s; getline(cin,s); int slen=s.length();//字符串的长度; int u;//用来记录末尾的0; for(int i=slen-1;i>=0;i--) { if(s[i]!='0') { u=i;//找出末尾的0; break; } } if(s[0]!='-')//正数 { for(int i=u;i>=0;i--) //从末尾不为0 的地方开始翻转 { cout<<s[i]; } } else if(s[0]=='-') { cout<<'-'; for(int i=u;i>0;i--) { cout<<s[i]; } } return 0; }