Решение задачи Числа без одинаковых цифр с Acmp

Без пояснения   Просмотров: 19


Антон записал ряд натуральных чисел в порядке возрастания: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 и т.д. Затем вычеркнул из него все числа, в которых имеется хотя бы две одинаковых цифры, и получил последовательность: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23 и т.д.

Вам необходимо по заданному N найти N-ое по счету число в получившейся последовательности.

Код

#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    int n, c = 0, cc = 0;
    cin >> n;
    bool b = false;
    vector<int> a;
    while(a.size() != n){
        vector<int> arr(10);
        ++cc;
        c = cc;
        b = 0;
        while(c){
            ++arr[c % 10];
            c/=10;
        }
        for(int i = 0; i < arr.size(); ++i)
            if(arr[i] > 1){
                b = true;
                break;
            }
        if(!b)
            a.push_back(cc);
    }
    cout << a[n - 1];
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться