P1307 数字反转

题目描述:给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。数据范围 -1,000,000,000≤ N≤ 1,000,000,000 。
分析:按要求模拟,考虑全面需要耐心,细心。
代码:

#include
int main()
{
    int n, ok;
    while(~scanf("%d",&n))
    {
        if (n < 0)          //负数先输出符号,再转为正数处理
        {
            printf("-");
            n = -n;
        }
        if (n == 0)
            printf("0\n");
        else
        {
            ok = 0;        //标记要输出的 0 之前是否已有非 0 数输出过
            while(n)
            {
                if(n%10 == 0 && ok || n%10 != 0)
                {
                    printf("%d",n%10);
                    ok = 1;
                }
                n /= 10;
            }
            printf("\n");
        }
    }
    return 0;
}

你可能感兴趣的:(P1307 数字反转)