华为机试在线训练_提取不重复的整数

提取不重复的整数

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

/*
本文系「人工智能安全」(微信公众号)原创,转载请联系本文作者(同博客作者)。
欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。
我是一名有诗人气质的网络安全工程师
期待与你的思想交流碰撞出智慧的花火
水木清华
2020-03-13
提取不重复的整数
*/
#include<iostream>
using namespace std;
//提取不重复的整数的函数接口
int Non_Rep_Num(int num)
{
    string str = to_string(num); //将整数转换为字符串
    int len = str.size(); //获取字符串的长度,即输入整数的位数
    int New_num = 0; //初始化一个不含重复数字的新的整数
    int a[10] = {0}; //采用数组下标对应方法,记录整数中数字 0 到 9 出现与否的情况
    // 记录整数中出现的数字(通过逆序读取整数转换得到的字符串)
    for(int i = len - 1; i >= 0; i--)
    {
        a[str[i] - '0'] = 1;
    }
    //按字符串中数字的相对位置顺序,逆序输出不含重复发数字的整数
    for(int i = len - 1; i >= 0; i--)
    {
        if(a[str[i] - '0'] == 1)
        {
            //将数字字符串转换为整数
            New_num *= 10;
            New_num += str[i] - '0';
            //避免重复输出同一数字
            a[str[i] - '0'] = 0;
        }
    }
    return New_num; //返回不含重复数字的新的整数
}
//主函数
int main()
{
    int num;
    while(cin >> num)
    {
        cout << Non_Rep_Num(num) << endl;
    }
    return 0;
}
大厂面试 文章被收录于专栏

分享有用的面试经历,倾吐有心的面试感悟,讲述有趣的面试故事,以飨读者。 常用语言是C++,编程力求规范整洁,题解清晰完整,像写诗一样去写代码。 本专栏文章系「人工智能安全」(微信公众号)原创,转载请联系本文作者。 欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。 我是一名有诗人气质的网络安全工程师,期待与你的思想交流碰撞出智慧的花火。

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:46
点赞 评论 收藏
分享
点赞 评论 收藏
分享
10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
评论
21
收藏
分享
牛客网
牛客企业服务