描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例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; }标签:输出,新数,数字,1.5,样例,29,000,末尾,翻转 From: https://www.cnblogs.com/scx20100214/p/16602251.html