例5.18 数字反转(Noip2011)
【问题描述】
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
【输入】
输入共1 行,一个整数N。
【输出】
输出共1 行,一个整数,表示反转后的新数。
【输入样例1】
123
【输出样例1】
321
【输入样例2】
-380
【输出样例2】
-83
【数据范围】
-1,000,000,000 ≤ N≤ 1,000,000,000。
例5.18 数字反转(Noip2011)
【问题描述】
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
【输入】
输入共1 行,一个整数N。
【输出】
输出共1 行,一个整数,表示反转后的新数。
【输入样例1】
123
【输出样例1】
321
【输入样例2】
-380
【输出样例2】
-83
【数据范围】
-1,000,000,000 ≤ N≤ 1,000,000,000。
【算法分析1】
1.将整数N转化成字符串s,可以用sprintf(s,"%d",N)来实现;
2.对字符串进行反转操作;
3.将字符串s转换成数字N,可以用sscanf(s,"%d",&N)来实现。
4.输出数字N。
【算法分析2】
判断数字是否为负数,如果是则先输出符号,并将数字取绝对值;
将数字从后往前转换成字符串;
去掉前导0,然后输出数字。