HDU 1597:find the nth digit(水)

来源:互联网 发布:淘宝怎么设置客服认证 编辑:程序博客网 时间:2024/06/09 23:03

find the nth digit

Time limit:1000 ms Memory limit:32768 kB


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 Input

6
1
2
3
4
5
10

Sample Output

1
1
2
1
2
4


解题思路:

直接去找是第几个序列,找到之后因为都是1~9循环,所以取余就能得到结果咧


Code:

#include <iostream>#include <cstdio>using namespace std;int main(){    int T;    scanf("%d",&T);    while(T--)    {        int n;        scanf("%d",&n);        int x=1;        while(n>x)        {            n-=x;            x++;        }        printf("%d\n",(n-1)%9+1);    }    return 0;}
原创粉丝点击