[LeetCode][400]第 N 位数字

时间:2024-04-01 11:25:26
class Solution { public: int findNthDigit(int n) { int numDigits = 1; // 初始化数字位数 long long int numCount = 9; // 当前数字位数所包含的数字个数 // 确定给定数字所在的位数 while (n - numCount * numDigits > 0) { n -= numCount * numDigits; numDigits++; numCount *= 10; } // 确定实际数字 int num = pow(10, numDigits - 1) + (n - 1) / numDigits; // 确定所找数字的位数 int digitIndex = (n - 1) % numDigits; // 将数字转换为字符串并获取指定位上的数字 std::string numStr = std::to_string(num); return numStr[digitIndex] - '0'; } };