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;
}
本文介绍了一个简单的程序设计问题:如何找出将所有正整数连接成一个长字符串时,指定位置上的数字是什么。通过使用C++编程语言,文章提供了一种有效的解决方案,并附带示例代码。

被折叠的 条评论
为什么被折叠?



