题解 | 使用数组的方法做---#提取不重复的整数#

提取不重复的整数

https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1

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

//计算10的n次幂
int caculateTen(int x, int vSize) {
    int mySum = 1;
    for (int i = 1; i <= (vSize - x - 1); i++) {
        mySum = mySum * 10;
    }
    return mySum;
}

int newNum(int n) {
    vector<int>v(9);
    int i = 0; 
    for (; n % 10!= 0; i++) {
        v[i] = (n % 10);
        n = n /10;
    }
    v.erase(v.begin()+i,v.end());  //将多余的内容去除
    for (int i = 0; i < v.size(); i++) {
        for (int j = 0; i > 0 && j < i; j++) {
            if (v[i] == v[j]) {
               v.erase(v.begin() + i); //将重复元素删掉
               i = i - 1;  //恢复i的位置
            }
        }
    }
    int sum = 0;
    for (int i = 0; i < v.size(); i++) {
       sum = sum + v[i] * caculateTen(i, v.size());
      
    }
    return sum;

}

int main() {
    int n;
    while (cin >> n) { // 注意 while 处理多个 case
        cout << newNum(n) << endl;
    }

    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务