#include <iostream>
#include <vector>
using namespace std;
int digitAtIndex(int index);
int main()
{
int ans = digitAtIndex(9);
cout << ans << endl;
return 0;
}
int digitAtIndex(int index)
{
int length = 9;
int digit = 1;
int num = 9;
while(index > length) {
index -= length;
cout << index << endl;
digit += 1;
num *= 10;
length = digit * num;
}
int q = index/digit;
int remainder = index%digit;
//cout << q << " " << remainder << endl;
int base = 1;
for(int i = 1; i < digit; ++i) {
base *= 10;
}
int ans;
if(remainder == 0) {
int temp = base + q - 1;
ans = temp%10;
} else {
int temp = base + q;
vector<int> v;
while(temp != 0) {
int r = temp%10;
v.push_back(r);
temp = temp/10;
}
/*
for(int elem : v) {
cout << elem << " ";
}
cout << endl;
*/
ans = v[digit-remainder];
}
return ans;
}
剑指offer 面试题44:数字序列中某一位的数字
最新推荐文章于 2022-08-19 15:21:08 发布