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

数字序列中某一位的数字

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

// 居然做了一天 各种小错误 最后静下来慢慢调试过的
class Solution{
public:
    int findNthDigit(int n) {
        if(n==0) return 0;

        int res = n;
        int digit = 1;
        long bound = 0;
        while(1){
            bound = 9*pow(10, digit-1)*(digit);
            if(res > bound){
                res = res - bound; // res是去掉前面固定的以后的剩下的数字量
                digit++;
            }
            else break;
        }
        int nums = res/(digit) ;  // 除以当前的位数  得到数字的个数
        int prev = (digit>1) ? pow(10, digit-1) + nums : nums;  // bound+数字个数

        res = res % digit;
        int cur = (res>0) ? prev + 1 : prev;  // 得到当前的数字
          
        string result = to_string(cur);
        if(res>0) return result[res-1]-'0';
        else return result.back()-'0';
    }
};

全部评论

相关推荐

rbjjj:太杂了吧,同学,项目似乎都没深度,都是api调度耶,分层架构思想没有体现出来了,前端没有前端优化前端工程化体现,后端微服务以及分层架构没体现以及数据安全也没体现,核心再改改,注重于计算机网络,工程化,底层原理吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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