NOIP 2011 普及组 复赛 reverse 数字反转
1.该题核心是分离出数字的个十百千万等位数字。
2.该题的陷阱是输入900000,输出9,这个不容易想到。
附上AC代码,编译环境Dev-C++4.9.9.2
#include <stdio.h>
int main(){
int n;
int a[20];
int top;
int flag;
int i,j;
scanf("%d",&n);
if(n==0){//n=0处理
printf("0\n");
return 0;
}
if(n>0)//大于0
flag=1;
else{//小于0
flag=-1;
n*=-1;
}
top=-1;
while(n){
top++;
a[top]=n%10;
n/=10;
}
if(flag==-1)
printf("-");
j=0;
while(a[j]==0&&j<=top)
j++;
for(i=j;i<=top;i++)
printf("%d",a[i]);
return 0;
}
//洛谷 p1307 数字反转
//难度:入门难度
//考点:输入,输出 ,整数四则运算,取整,取模
//适用:小学生
#include <stdio.h>
int main(){
int n;
int ans=0;
scanf("%d",&n);
if(n<0){
printf("-");
n=-n;
}
while(n){
ans*=10;
ans+=n%10;
n/=10;
}
printf("%d\n",ans);
return 0;
}