题目描述
有一些数的素因子只有3、5、7,请设计一个算法,找出其中的第k个数。
给定一个数int k,请返回第k个数。保证k小于等于100。
测试样例:
3
返回:7
不懂为啥这样。。。。
class KthNumber {
public:
int findKth(int k) {
// write code here
vector<int> res(k+1);
int i=0,j=0,t=0;
res[0]=1;
int num=0;
for(int h=1;h<=k;h++)//不能从0开始,不然res[0]=3;影响第二个数5的产生
{
num=min(res[i]*3,min(res[j]*5,res[t]*7));
res[h]=num;
if(num==res[i]*3) i++;
if(num==res[j]*5) j++;
if(num==res[t]*7) t++;
}
return res[k];
}
};