Leetcode 400. Nth Digit[easy]
2016-10-14 16:09
399 查看
题目:
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.
继续混题数。
wa了一次,没注意到位数*此位数数字的个数有可能爆int。
![](http://img.blog.csdn.net/20161014160917297)
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.
继续混题数。
wa了一次,没注意到位数*此位数数字的个数有可能爆int。
class Solution { public: int findNthDigit(int n) { return find(1, n); } int find(int w, int n) { int num = max(w) - min(w) + 1; if ((long long)n > (long long)w * num) return find(w + 1, n - w * num); else { int q = (n - 1) / w; int r = (n - 1) % w; r++; n = min(w) + q; r = w - r; while (r--) n /= 10; return n % 10; } } int max(int w) { int rt = 0; while (w--) rt = rt * 10 + 9; return rt; } int min(int w) { int rt = 1; w--; while (w--) rt *= 10; return rt; } };
相关文章推荐
- Leetcode 400. Nth Digit (Easy) (cpp)
- LeetCode400. Nth Digit
- Leetcode 400. Nth Digit 第n个数字 解题报告
- LeetCode-400. Nth Digit
- LeetCode—400. Nth Digit
- 400. Nth Digit (leetcode) 。。。
- (Leetcode)400. Nth Digit
- [leetcode: Python]400. Nth Digit
- [Leetcode] 400. Nth Digit 解题报告
- leetcode 400. Nth Digit
- LeetCode 400. Nth Digit
- leetcode 400. Nth Digit
- LeetCode-400. Nth Digit
- LeetCode 400. Nth Digit
- LeetCode 400. Nth Digit
- 【leetcode】400. Nth Digit(Python & C++)
- 【LeetCode】 400. Nth Digit
- 【Leetcode】400. Nth Digit
- LeetCode - 400. Nth Digit
- leetcode 400. Nth Digit 从1到n第n位数字是什么 + 找规律