Решение задачи Короткая последовательность с Acmp

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


Дано целое число N. Рассмотрим последовательность S1S2S3...Sk..., где каждая группа цифр Sk состоит из записанных одно за другим чисел от 1 до k. Например, первые 75 цифр последовательности выглядят так:

112123123412345123456123456712345678123456789123456789101234567891011123456.

Требуется написать программу, которая определит: какая цифра находится на N-ой позиции в построенной последовательности.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int n,k = 1, d = 0;
    cin >> n;
    string s;
    vector<int> a;
    while(s.size() < n){
        for(int i = 1; i <= k; ++i){
            d = i;
            while(d){
                a.push_back((d % 10));
                d/=10;
            }
            for(int i = a.size() - 1; i >= 0; --i)
                s.push_back(a[i] + 48);
            a.clear();
        }
        k++;
    }
    cout << s[n - 1];
    return 0;
}

         

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



Комментарии

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