noi 1.5 29 数字翻转
描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入
输入共 1 行,一个整数N。
-1,000,000,000 ≤ N≤ 1,000,000,000。
输出
输出共 1 行,一个整数,表示反转后的新数。
样例输入
样例 #1:
123
样例 #2:
-380
样例输出
样例 #1:
321
样例 #2:
-83
题意
将数字翻转过来,就是首位变末尾,末尾变首位对应的位置交换数字。
思路
1.末尾有0:末尾有0转换过去就相当于开头是0,所以用while循环去0。
2.输出:因为转换是末尾的数在前,我们就可以每输出一位去掉一位,用取余输出,除以去位。
3.输入的数是负数:直接乘以负一,负负得正,变成正数,因为要求转换完负数后要求这个数还是负数所以,再输出一个负号表示负数。
代码实现
#include<iostream>
using namespace std;
int main(){
int a,b;
cin>>a;
if(a<0){//判断是否为负数。
a=a*-1;//负负得正。
cout<<"-";//输出一个负号表示负数。
while(a%10==0){//判断末尾是否有0.
a=a/10;//去0。
}
while(a!=0){//每输出一位就去一位,到0为止。
cout<<a%10;//输出。
a=a/10;//去位。
}
}
else{
while(a%10==0){
a=a/10;
}
while(a!=0){
cout<<a%10;
a=a/10;
}
}
return 0;
}