天天看点

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

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;

}