Round 352. Div 2 A. Летняя школа

 

Каждый год сотни людей приезжают в летнюю школу, чтобы изучать новые алгоритмы и решать сложные задачи. В этом году вы приехали в летнюю школу в первый раз, и вам поручили решить следующую задачу.

Все целые числа начиная с 1 были выписаны в одну строку «123456789101112131415...». По данному числу n выведите цифру на n-й позиции (используется нумерация с 1).

 

Вход. В единственной строке входных данных записано целое число n (1 ≤ n ≤ 1000) –позиция цифры, которую вам требуется вывести.

 

Выход.  Выведите n-ую цифру получившейся строки.

 

Пример входа 1

3

 

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

3

 

Пример входа 2

11

 

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

0

 

 

РЕШЕНИЕ

строки

 

Анализ алгоритма

Поскольку n не большое (1 ≤ n ≤ 1000), то сгенерируем строку, содержащую требуемый ряд чисел. Затем из этой строки выведем n-ый символ.

 

Реализация алгоритма

 

#include <cstdio>

#include <string>

#include <algorithm>

using namespace std;

 

int i, n;

string s = " ";

char p[10];

 

int main(void)

{

  scanf("%d", &n);

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

  {

    sprintf(p,"%d",i);

    s = s + (string)p;

  }

  printf("%c\n",s[n]);

  return 0;

}