问题标题: 酷町堂:1443 数字反转

0
0
已解决
董妙一
董妙一
资深守护
资深守护

题目描述 Description

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

输入描述 Input Description

输入格式:
输入文件名为reverse.in 。

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

输出描述 Output Description

输出格式:
输出文件名为reverse.out 。

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

样例输入 Sample Input

输入样例#1: 123 输入样例#2: -380

样例输出 Sample Output

输出样例#1: 321 输出样例#2: -83

数据范围及提示 Data Size & Hint

数据范围

-1,000,000,000≤ N≤ 1,000,000,000 。


0
已采纳
高舒豪
高舒豪
中级光能
中级光能
freopen("1443.in","r",stdin);
    freopen("1443.out","w",stdout);
    int n;
    int ge=0,res=0;
    cin>>n;
    while(n){
        ge=n%10;
        n=n/10;
        res=res*10+ge;
    }
    cout<<res;
    fclose(stdin);
    fclose(stdout);

freopen和fcolse是文件操作,不开文件操作就删了

0
0
李奕歌
李奕歌
初级天翼
初级天翼
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int a,b,c=0;
    scanf("%d",&a);
    if(a<0){cout<<'-';a=-a;}
    do{
    b=a%10;
    a=a/10;
    c=c*10+b;
    }while(a!=0);
    cout<<c<<endl;
    return 0;
}

 

0
马烨烨
马烨烨
初级守护
初级守护

只能用字符串,数字太大了,long long也存不下

#include<iostream>
using namespace std;
string s; 
int main()
{
    cin>>s;
    if(s[0]=='-')
    {
        cout<<"-";
        s.erase(0,1);
    }
    while(s[s.size()-1]=='0'&&s.size()!=1)
    {
        s.erase(s.size()-1,1);
    } 
    for(int i=s.size()-1;i>=0;i--)
        cout<<s[i];
    return 0;
}
/**/

AC过的代码

0
被禁言 高乐彤
高乐彤
修练者
修练者
    long long n,a[20],i=1,k=0;
    cin>>n;
    if(n>0){
        while(1){
            if(n>=10){
                a[i]=n%10;
                i++;
                n/=10;
            }if(n<10){
                a[i]=n;
                break;
            }
        }for(int j=1;j<=i;j++){
            if(a[j]==0){
                k++;
            }else{
                break;
            }
        }for(int j=k+1;j<=i;j++){
            cout<<a[j];
        }
    }else if(n<0){
        n=0-n;
        while(1){
            if(n>=10){
                a[i]=n%10;
                i++;
                n/=10;
            }if(n<10){
                a[i]=n;
                break;
            }
        }for(int j=1;j<=i;j++){
            if(a[j]==0){
                k++;
            }else{
                break;
            }
        }
        cout<<"-";
        for(int j=k+1;j<=i;j++){
            cout<<a[j];
        }
    }else{
        cout<<0;
    }

核心

我要回答