QAQ(80分)大神求教

P1307 [NOIP2011 普及组] 数字反转

Snowboy @ 2016-08-25 13:48:25

#include <cstdio>
int cnt=0;
int can;
int main()
{
    int n,i;
    scanf("%d",&n);
    if(n==0)
    {    
        printf("0");
        return 0;
    }    
    if(n<0)
    {
        n=n*(-1);
        can=1;
    }
    int tmp=n;
    while(tmp!=0)
    {
        tmp=tmp/10;
        cnt++;

}//计算多少位数

    if(can==1)
        printf("-");
    tmp=n;
    for(i=1;i<=cnt;i++)
    {    
        if(i==1 && tmp%10==0)
        {
            tmp=tmp/10;
            continue;
        }
        if(i==cnt)
        {
            printf("%d",tmp);
            break;
        }
        if(i!=1 && tmp==0)
            printf("%d",tmp);
        if(tmp%10!=0 && i!=cnt)
        {
            int t=tmp%10;
            printf("%d",tmp%10);
            tmp=tmp/10;
            continue;
        }
        if(tmp%10==0 && i!=cnt)
        {
            tmp=tmp/10;
            printf("0");
            continue;
        }
    }
    return 0;
}

by AFOier @ 2016-08-25 17:09:02

不用这么麻烦吧,每次输出这个数%10,然后这个数再除以10就可以了


by Horizon_452 @ 2016-09-24 09:17:04

可是不知道是几位数啊


|