数位分离

P1307 [NOIP 2011 普及组] 数字反转

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

输入格式
一个整数 N。

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

输入输出样例
输入 123
输出 321

输入-380
输出83

解题思路
主要就是这个
ans=ans*10+temp%10;
sovle1()可以不看

C++解答


#include <bits/stdc++.h>
using namespace std;
void solve1(){ int N;cin>>N;
    
    int temp=N;
    if(N<0)temp=-N;
    vector<int>a;

    for(int i=0;temp!=0;i++){
        
        a.push_back(temp%10);
        temp/=10;
    }
    int ans=0;
    
    for(int i=0;i<a.size();++i){
        ans=ans*10+a[i];
    }
   
    if(N>=0){
        cout<<ans;
    }
    else{
        cout<<"-"<<ans;
    }
             }

void solve2(){
    int N;cin>>N;
    int temp=N;
    if(temp<0)temp=-temp;
    int ans=0;
    while(temp!=0){
        ans=ans*10+temp%10;
        temp/=10;
        }
    if(N<0){
        ans*=(-1);
    }
    cout<<ans;
    
}
int main(){    
   // solve1();
    solve2();
    return 0;
}
posted @ 2026-09-13 19:57  叶臧  阅读(4)  评论(0)    收藏  举报