, МОБУ Лицей №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;
}




