№1209
http://acm.timus.ru/problem.aspx?space=1&num=1209
ЖМИ ДАЛЕЕ>>>
РЕШЕНИЕ:
PASCAL
{A}
Var K,I,N:LongInt;
Begin
Read(K);
For I:=1 to K do begin
Read(N);
If ((1+sqrt(1+8.0*N-8))/2)=Round((1+sqrt(1+8.0*N-8))/2)
then Write('1') else Write('0');
If I<>K then Write(' ');
end;
End.
1209. 1, 10, 100, 1000...
Ограничение времени: 1.0 секунды
Ограничение памяти: 16 МБ
Ограничение памяти: 16 МБ
Представим себе бесконечную последовательность цифр, составленную из записанных друг за другом возрастающих степеней десятки. Вот начало этой последовательности: 110100100010000… Всё, что надо — определить, какая цифра находится в такой последовательности на определённом месте.
Исходные данные
В первой строке находится целое число N (1 ≤ N ≤ 65535). В i-й из N последующих строк записано целое число Ki — номер позиции в последовательности (1 ≤ Ki ≤ 231 − 1) .
Результат
Выведите через пробел N цифр. i-я цифра должна равняться цифре, которая находится в описанной выше последовательности на позиции с номером Ki.
Пример
| исходные данные | результат |
|---|---|
4 3 14 7 6 | 0 0 1 0 |
Автор задачи: Алексей Лахтин
Источник задачи: USU Open Collegiate Programming Contest October'2002 Junior Session
Источник задачи: USU Open Collegiate Programming Contest October'2002 Junior Session