CodeForces - 672A
Time Limit: 1000MS | Memory Limit: 262144KB | 64bit IO Format: %I64d & %I64u |
Description
Every year, hundreds of people come to summer camps, they learn new algorithms and solve hard problems.
This is your first year at summer camp, and you are asked to solve the following problem. All integers starting with 1 are written in one line. The prefix of these line is "123456789101112131415...". Your task is to print the n-th digit of this string (digits are numbered starting with 1.
Input
The only line of the input contains a single integer n (1 ≤ n ≤ 1000) — the position of the digit you need to print.
Output
Print the n-th digit of the line.
Sample Input
Input
3
Output
3
Input
11
Output
0
Sample Output
Hint
Source
//题意: 定义一个字符串 s 为123456789101112131415......
输入一个数n,让你输出s[n];
//思路:
因为n的数非常小,只有1000,所以可以直接打表就行了。
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
int a[10100],b[5];
int main()
{
int i,ii,j,kk=1,k;
for(i=1;i<=400;i++)
{
k=0;ii=i;
while(ii)
{
b[k++]=ii%10;
ii/=10;
}
for(j=k-1;j>=0;j--)
a[kk++]=b[j];
}
int n;
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",a[n]);
}
return 0;
}