首页 > 代码库 > find the nth digit

find the nth digit

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 #include <stdio.h> 2  3 int main(){ 4     int T; 5     int number; 6     int i; 7      8     scanf("%d",&T); 9     10     while(T--){11         scanf("%d",&number);12         13         i=1;14         while(1){15             if(number>i){16                 number-=i;17                 i++;18             }19             20             else            21                 break;22         }23         24         number%=9;25         26         if(number==0)27             number=9; 28             29         printf("%d\n",number);30     }31     32     return 0;33 }

 

 

find the nth digit