zoukankan      html  css  js  c++  java
  • 400. Nth Digit

    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 }
     
  • 相关阅读:
    AI ResNet V1
    Lua基础
    git命令小结
    定时器及时间轮
    expect
    vscode 常用快捷键
    动态链接库与共享内存:
    container_of机制
    ELF文件格式
    git学习补充
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/7883447.html
Copyright © 2011-2022 走看看