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.
The only line of the input contains a single integer n (1 ≤ n ≤ 1000) — the position of the digit you need to print.
Print the n-th digit of the line.
3
3
11
0
In the first sample the digit at position 3 is '3', as both integers 1 and 2 consist on one digit.
In the second sample, the digit at position 11 is '0', it belongs to the integer 10.
把数字转化成字符串。转化博客
#include<bits/stdc++.h>
#include<cstdlib>
using namespace std;
template<typename T> string toString(const T& t){
ostringstream oss; //创建一个格式化输出流
oss<<t; //把值传递如流中
return oss.str();
}
int main()
{
string str;
int i=1;
string s;
while(1)
{
s=toString(i);
str=str+s;
if(str.length()>=1000)
break;
i++;
}
int n;
scanf("%d",&n);
cout<<str[n-1]<<endl;
return 0;
}