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;
}
posted @ 2022-08-19 15:49  be_scx  阅读(52)  评论(0编辑  收藏  举报