【华为机试】提取不重复的整数

xiaoxiao2021-02-28  32

题目描述

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

输入描述:

输入一个int型整数

输出描述:

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

输入

9876673

输出

37689

分析:从右到左依次提取不重复的数字,组成一个新的数字。把每位数字存放在数组中,每添加一位比较是否重复。

程序:

#include <iostream> #include <vector> using namespace std; inline bool isdiff(int n,vector<int> temp){ //检测是否有重复数字; if(temp.empty()) return true; int i=0; while(i<temp.size()){ if(temp[i]==(n)) break; i++; } if(i==temp.size()) return true; return false; } int main(){ int n; while(cin>>n){ long long res=0; vector<int> temp; while(n!=0){ if(isdiff(n,temp)){ temp.push_back(n); res=res*10+n; } n/=10; } cout<<res<<endl; } return 0; }

转载请注明原文地址: https://www.6miu.com/read-600311.html

最新回复(0)