2011 junior T1 数字反转 题解

题目描述

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

输入格式:

一个整数 N
输出格式:
一个整数,表示反转后的新数。

输入样例1:

123

输出样例1:

321

输入样例2:

-380

输出样例2:

-83

【数据范围】

−1,000,000,000≤N≤1,000,000,000。

解题思路

这道题需要先把数字换成字符串。判断正负号,并且判断从哪位开始不是0。从第一个不是0的开始打印。

代码

#include <bits/stdc++.h>
using namespace std;
int main(int argc, const char * argv[]) {
    string a;
    cin>>a;
    int len=0;
    if(a[0]=='-'){
        len++;
        printf("-");
    }
    bool tf=false;
    for(int i=a.length()-1;i>=len;i--){
        if(a[i]=='0'&&tf==false){
            continue;
        }
        tf=true;
        cout<<a[i];
    }
    return 0;
}

有点难。。。
智商不够了。。。

猜你喜欢

转载自blog.csdn.net/johnwayne0317/article/details/84325451