Отримання знань

дистанційна підтримка освіти школярів


Числовая последовательность
http://acm.pku.edu.cn/JudgeOnline/problem?id=1019

   Входные данные

   Выходные данные

   Пример входных данных

   Пример выходных данных

   Анализ условия и обсуждение идеи решения

   Пример решения на С++:

#include < stdio.h >
typedef __int64 longint;
int main(){
longint task;
longint n;
longint i,j,k,l;
longint st[10];
scanf("%I64d",&task);
while (task--) {
scanf("%I64d",&n);
i = 0;
j = 0;
l = 0;
while (l < n) {
i++;
if ( i < 10) k = 1;
else if (i < 100) k = 2;
else if (i < 1000) k = 3;
else if (i < 10000) k = 4;
else if (i < 100000) k = 5;
else if (i < 1000000) k = 6;
j += k;
l += j;
}
l -= j;
n -= l;
i = 0;
j = 0;
while (j < n) {
i++;
if ( i < 10) k = 1;
else if (i < 100) k = 2;
else if (i < 1000) k = 3;
else if (i < 10000) k = 4;
else if (i < 100000) k = 5;
else if (i < 1000000) k = 6;
j += k;
}
j -= k;
n -= j;
k = 0;
while (i) {
st[k++] = i % 10;
i /= 10;
}
printf("%I64d\n",st[k-n]);
}
return 0;
}

 

Попередня Зміст Наступна
В системі: гості - (); користувачі - (0)