NOIP 2011 普及组 复赛 reverse 数字反转

来源:互联网 发布:linux sleep usleep 编辑:程序博客网 时间:2024/05/21 10:02

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;
}



0 0