提取不重复的整数
提取不重复的整数
http://www.nowcoder.com/questionTerminal/253986e66d114d378ae8de2e6c4577c1
题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1
输入
9876673
输出
37689
#include <stdio.h>
#include <vector>
#include <math.h>
using namespace std;
int num;
int main()
{
int b;
int find;
vector<int> vec;
decltype(vec.begin()) p;
scanf("%d",&num);
while(num>10)
{
find = 0;
b = num%10;
num/=10;
for(p=vec.begin();p<vec.end();p++)
{
if(b==*p)
{
find = 1;
}
}
if(!find)
{
vec.push_back(b);
}
}
//把最后一个数判断后加进去
find = 0;
for(p=vec.begin();p<vec.end();p++)
{
if(num==*p)
{
find = 1;
}
}
if(!find)
{
vec.push_back(num);
}
int s = vec.size();
int sum = 0;
while(!vec.empty())
{
static int cc;
int bs = pow(10,cc);
int a = vec.back();
sum += a*bs;
++cc;
vec.pop_back();//笔记:注意pop_back()函数不能用来取数,要用vector.back()来取数据!!!
}
printf("%d",sum);
return 0;
}