题解 | 数字序列中某一位的数字

数字序列中某一位的数字

https://www.nowcoder.com/practice/29311ff7404d44e0b07077f4201418f5

#include <string>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @return int整型
     */
    int findNthDigit(int n) {
        long long len = 1; // 当前位数1 2 3
        long long count = 9;//个数 9 90 900
        long long start = 1; // 起始数字1 10 100
        while(n > len * count)
        {
            n -= len * count;
            len ++;
            count *= 10;
            start *= 10;
        }
        long long num = start + (n - 1) / len; // 找到数字在当前位数内的具体位置
        int numPos = (n - 1) % len;
        string numStr = to_string(num);
        return numStr[numPos] - '0';
    }
};

全部评论

相关推荐

舂锋:不能投什么岗都用一份简历,一般都是要看企业的岗位需求来写职业技能或者是项目经历,跟岗位相关的就写多一点。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务