首页 > 其他 > 详细

400. Nth Digit

时间:2017-11-23 10:15:11      阅读:231      评论:0      收藏:0      [点我收藏+]

Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...

Note:
n is positive and will fit within the range of a 32-bit signed integer (n < 231).

Example 1:

Input:
3

Output:
3

 

Example 2:

Input:
11

Output:
0

Explanation:
The 11th digit of the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... is a 0, which is part of the number 10.

求无穷序列里的第n个数字
比如第11个数是数字10里的0

C++(3ms):
 1 class Solution {
 2 public:
 3     int findNthDigit(int n) {
 4         int len = 1 ;
 5         long count = 9 ;
 6         int start = 1 ;
 7         while(n > len * count){
 8             n -= len * count ;
 9             len+=1 ;
10             count *= 10 ;
11             start *= 10 ;
12         }
13         start += (n-1)/len ;
14         string s = to_string(start) ;
15         int res = s[(n-1)%len] - 0 ;
16         return res ;
17     }
18 };

 

 

java(7ms):

 1 class Solution {
 2     public int findNthDigit(int n) {
 3         int len = 1;
 4         long count = 9;
 5         int start = 1;
 6 
 7         while (n > len * count) {
 8             n -= len * count;
 9             len += 1;
10             count *= 10;
11             start *= 10;
12         }
13 
14         start += (n - 1) / len;
15         String s = Integer.toString(start);
16         return Character.getNumericValue(s.charAt((n - 1) % len));
17     }
18 }

 

 

400. Nth Digit

原文:http://www.cnblogs.com/mengchunchen/p/7883447.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!