Last updated on July 21st, 2024 at 04:23 am
Here, We see Nth Digit LeetCode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.
List of all LeetCode Solution
Topics
Math
Companies
Level of Question
Medium
![Nth Digit LeetCode Solution](https://i0.wp.com/totheinnovation.com/wp-content/uploads/2024/02/LeetCode-Problem-Solution.png?resize=200%2C200&ssl=1)
Nth Digit LeetCode Solution
Table of Contents
Problem Statement
Given an integer n, return the nth digit of the infinite integer sequence [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …].
Example 1:
Input: n = 3
Output: 3
Example 2:
Input: n = 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.
1. Nth Digit Leetcode Solution C++
class Solution { public: int findNthDigit(int n) { int a = 9, d = 1; while (n - (long)a * d > 0) { n -= a * d; a *= 10; d += 1; } int num = pow(10, d - 1) + (n - 1) / d; cout<<num; return to_string(num)[(n - 1) % d] - '0'; } };
2. Nth Digit Leetcode Solution Java
class Solution { public int findNthDigit(int n) { int digit = 1; int num_digits_in_interval = 9; while (n - num_digits_in_interval > 0) { n -= num_digits_in_interval; digit += 1; num_digits_in_interval = 9 * ((int) Math.pow(10, digit - 1))*digit; if (num_digits_in_interval < 0) break; } int base = ((int) Math.pow(10, digit - 1)); int number = base + (n - 1) / digit; char digit_in_number = String.valueOf(number).charAt((n - 1) % digit); return digit_in_number - '0'; } }
3. Nth Digit Solution JavaScript
var findNthDigit = function(n) { var len = 1; var range = 9; var base = 1; while(n>len*range) { n -= len *range; range *= 10; base *= 10; len++; } var num = base + Math.floor((n-1)/len); var s = num.toString(); return parseInt(s[(n-1)%len]); };
4. Nth Digit Solution Python
class Solution(object): def findNthDigit(self, n): if n <= 9: return n base = 9 digits = 1 while n > base * digits: n -= base * digits base *= 10 digits += 1 num = 10 ** (digits - 1) + (n - 1) // digits idx = (n - 1) % digits return int(str(num)[idx])