NOIP2011-普及组复赛-第一题-数字反转

题目描述 Description
  给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
 输入输出格式 Input/output
输入格式:
  输入文件名为reverse.in 。 
  输入共1 行,一个整数 N。
输出格式:
  输出文件名为reverse.out 。 
  输出共1行,一个整数,表示反转后的新数。
 输入输出样例 Sample input/output
样例测试点#1
输入样例:

【样例输入1】
123
【样例输入2】
-380

输出样例:

【样例输出1】
321
【样例输出2】
-83

思路:判断是否是负数,如果是负数,输出一个“-”号,再变为正数进行计算

计算过程:用一个数s来计算需要反转的数的从后往前的每一位,每次除以10求余,就得了。

代码如下:

 1 #include<stdio.h>  
 2 int main()  
 3 {  
 4   int x,s=0;  
 5   scanf("%d",&x);     
 6   if(x<0)//判断是否负数  
 7   {  
 8     printf("-");//是,输出一个负号  
 9     x=x*(-1);//变为正数  
10   }  
11   while(x>0)//循环到这个数小于等于0为止  
12   {  
13     s=s*10+x%10;//计算每一位  
14     x=x/10;//每次要除以10  
15   }  
16   printf("%d",s);//输出即可      
17   return 0;  
18 }

 

posted @ 2015-02-24 10:02  Memoryヾノ战心  阅读(2364)  评论(0编辑  收藏  举报