1.用二分法找,关键点:mid 除以乘法表的行数等于 mid 在该行中排第几。
class Solution {
public:
int findKthNumber(int m, int n, int k) {
int le=1,ri=m*n+1;
while(le<ri){
int mid=(le+ri-1)/2;
int count=0;
for(int i=1;i<=m;i++)
count+=min(mid/i,n);
if(count>=k) ri=mid;
else le=mid+1;
}
return le;
}
};