数字反转

发布时间 2023-04-27 19:11:45作者: harper886

数字反转

题目链接

P1307 [NOIP2011 普及组] 数字反转

#include <stdio.h>

int main() {
int n;
int a=10;
int b=1;
int sum = 0;
int count=0;
int pd;//该参数用来判断n的正负 
scanf("%d",&n);//搜集n的值 
if(n<0){
	n = -n;
	pd =-1;//这里是判断n的正负以便于后面的操作 
}
int t=n;
while(t>0){
	t=t/10;
	count++;//这个循环判断输入的数有多少位 

}
//printf("%d\n",count);
for(int j=1;j<=count-1;j++){
	b=b*10;//这个循环得出最高位数需要乘以几百 
}
//printf("%d\n",b);
for(int i=1;i<=count;i++){
sum=sum+(n%a)*b;//第一次循环的到最高位第二次得到第二位以此类推 
	n= n/10;//去掉最后一位这时最后一位已经被用掉了,为接下来的循环做准备 
	b = b/10;//的到次位的b,为后面的循环做准备; 
	
}

if(pd==-1){
	sum = -sum;//这里是与前面判断正负的那个变量相呼应的地方,得到负数的正确结果 
}
printf("%d",sum);
/*
123 
3*100+2*10+1
1234
4*1000+3*100+2*10+1
*/
	return 0;
}