提取不重复的整数
提取不重复的整数
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; }