find the nth digit
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 17778 Accepted Submission(s): 5750
Problem Description假设:
S1 = 1
S2 = 12
S3 = 123
S4 = 1234
.........
S9 = 123456789
S10 = 1234567891
S11 = 12345678912
............
S18 = 123456789123456789
..................
现在我们把所有的串连接起来
S = 1121231234.......123456789123456789112345678912.........
那么你能告诉我在S串中的第N个数字是多少吗?
Input输入首先是一个数字K,代表有K次询问。
接下来的K行每行有一个整数N(1 <= N < 2^31)。
Output对于每个N,输出S中第N个对应的数字.
Sample Input61234510
Sample Output112124
这题一直想着要用字符串来做 但是根本不用 训练赛结束去网上搜代码才发现大家的都这么简单 其实自己现在还是挺看不懂挺迷糊的
ac代码:
#include<iostream>
int main()
{
using namespace std;
int K,N;
cin>>K;
while(K--)
{
cin>>N;
for(int i=1;i<N;i++)
{
if(N-i<=0)
break;
N-=i;
}
if(N>9)
N%=9;
if(N==0)
N=9;
cout<<N<<endl;
}
}