, МОБУ Лицей №6, г. Мелеуз. *****@***ru.

Задание 7 (С++ 11)

Представим себе бесконечную последовательность цифр, составленную из записанных друг за другом возрастающих степеней десятки. Вот начало этой последовательности: 110100100010000… Всё, что надо — определить, какая цифра находится в такой последовательности на определённом месте.

Исходные данные

В первой строке находится целое число N (1 ≤ N ≤ 65535). В i-й из N последующих строк записано целое число Ki — номер позиции в последовательности (1 ≤ Ki ≤ 231 − 1).

Результат

Выведите через пробел N цифр. i-я цифра должна равняться цифре, которая находится в описанной выше последовательности на позиции с номером Ki.

Пример

исходные данные

результат

4

3

14

7

6

0 0 1 0


#include <iostream>

#include <vector>

#include <string>

using namespace std;

int main()

{

       int n, i, k, j = 0;

       string s;

       cin >> n; //кол-во тестов

       vector <int> a(n);

       for (i = 0; i < n; i++){

               cin >> a[i];

               if (j < a[i]) j = a[i];

       } //запись тестов в массив, присваивание j наибольшего значения из них

       s = "1";

       for (i = 1; i < j-3; i++){

               s += "1";

               for(k = 0; k < i; k++)

                       s += "0";

       } //формирование последовательности

       for (i = 0; i < n; i++)

       cout << s[a[i]-1] << " "; //вывод ответов на тесты

       return 0;

}