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; 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; n/=10; } printf("%d\n",ans); return 0; }