数字反转(直接翻转法,字符串翻转法)

对于整数来说,翻转还是比较容易的,在这里有两种方法供大家参考;

1:直接翻转,代码也比较简洁;(方法就是先取余,将最后一位取出来,

再求整商,每次循环乘十,这样就将每个数字分离出来了

#include
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
#include
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;
}

 

转载于:https://www.cnblogs.com/zhoubo123/p/11128976.html

你可能感兴趣的:(数字反转(直接翻转法,字符串翻转法))