数位分离
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;
}
浙公网安备 33010602011771号