题解 | #提取不重复的整数#

提取不重复的整数

http://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1

#include <stdio.h>

int input = 0;
int output = 0;
short bitmap = 0;

int shift()
{
    return input % 10;
}

void set(int _idx)
{
    bitmap |= 1 << _idx;
}

_Bool check(int _i)
{
    return (bitmap & (1 << _i));
}

int main()
{
    while (scanf("%d", &input) != EOF) {
        while (0 != input) {
            int tmp = shift();
            if (!check(tmp)) {
                output = output * 10 + tmp;
                set(tmp);
            }
            input /= 10;
        }

        printf("%d\n", output);
    }

    return 0;
}

描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是0。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

全部评论

相关推荐

头像
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务