您的位置:首页 > 其它

输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

2017-04-02 10:42 1356 查看


题目描述

输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。


输入描述:

输入一个int型整数

输出描述:

按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

输入例子:

9876673


输出例子:

37689


C++代码

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main()
{
int nums, sum_ = 0, mul_ = 1;
cin >> nums;
vector<int> vec;
//从右向左找不同的元素,并放入ector中
while(nums >0)
{
if (find(vec.begin(), vec.end(), nums%10)== vec.end())
vec.push_back(nums % 10);
nums = nums / 10;
}
vector<int>::iterator ptr = vec.end();

//从后向前遍历vector,并求和
while( --ptr != vec.begin() )
{
sum_ += *ptr * mul_;
mul_ *= 10;
}
sum_ += *vec.begin() * mul_;
cout << sum_ << endl;
return 0;
}

注:(1)泛型算法find的使用,用于查找容器中指定元素,若查找成功,返回一个指向指定元素的迭代器,否则,返回end迭代器


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐