0
点赞
收藏
分享

微信扫一扫

AcWing445. 数字反转

SDKB英文 2022-02-10 阅读 66
c++

给定一个整数,请将该数各个位上数字反转得到一个新数。

新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。

输入共 1 行,1 个整数 N。

输出共 1 行,1 个整数表示反转后的新数。

|N|≤10^9

123
321
-380
-83

 c++解法(vector容器)

#include <iostream>
#include <vector>//容器存储
using namespace std;
int main()
{
    string a;
    cin>>a;
    vector<int> A;
    if(a[0]=='-')
    {
        for(int i = 1;i < a.size();i ++ )A.push_back(a[i]-'0');//从负号下一位数字位进行存储
        while(A.size()>1&&A.back()==0)A.pop_back();//删去反转之后的前缀零
        printf("-");//输出负号
        for(int i = A.size()-1;i >= 0;i -- )printf("%d",A[i]);//输出反转数
    }
    else
    {
        for(int i = 0;i < a.size();i ++ )A.push_back(a[i]-'0');//从数字位进行存储
        while(A.size()>1&&A.back()==0)A.pop_back();//删去反转之后的前缀零
        for(int i = A.size()-1;i >= 0;i -- )printf("%d",A[i]);//输出反转数
    }
    return 0;
}
举报

相关推荐

0 条评论