<filename>LeetCode/400 Nth Digit.py
# Math

# 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.
class Solution:
    def findNthDigit(self, n):
        """
        :type n: int
        :rtype: int
        """
        base = 9
        ith = 1
        digit = 1
        while n > base*digit:
            n -= base*digit
            digit += 1
            ith += base
            base *= 10
        return int(str(ith+(n-1) / digit)[(n-1)%digit])

<filename>LeetCode/400 Nth Digit.py
# Math

# 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.
class Solution:
    def findNthDigit(self, n):
        """
        :type n: int
        :rtype: int
        """
        base = 9
        ith = 1
        digit = 1
        while n > base*digit:
            n -= base*digit
            digit += 1
            ith += base
            base *= 10
        return int(str(ith+(n-1) / digit)[(n-1)%digit])

# Math # 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. :type n: int         :rtype: int