题解 | 珂朵莉的假toptree

珂朵莉的假toptree

https://www.nowcoder.com/practice/82c92d2321bb4220a3006d52a95a8bdd

#include <iostream>
#include <string>
using namespace std;

int findNthDigit(int n) {
    int digits = 1; // 当前数字位数
    long long count = 9;    // 当前位数数字的总位数
    int start = 1;  // 当前位数数字的开始数字

    // 1. 确定数字位数
    while (n > count) {
        n -= count;
        digits++;
        start *= 10;
        count = 9 * start * digits;
    }

    // 2. 确认具体数字
    int num = start + (n - 1) / digits;

    // 3. 确定数字中的具体位
    int digit_pos = (n - 1) % digits;
    return to_string(num)[digit_pos] - '0';
}

int main() {
    int n;
    cin >> n;
    cout << findNthDigit(n) << endl;
}

全部评论

相关推荐

03-29 18:59
运城学院 Java
程序员小白条:咱们要对自己的简历和学历有清晰的认知,不要动不动就大厂了....都26届了,没实习还想着大厂,唉
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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