第k个数
题目描述
有一些数的素因子只有3、5、7,请设计一个算法,找出其中的第k个数。
给定一个数int k,请返回第k个数。保证k小于等于100。
测试样例:
3
返回:7
class KthNumber { public: int findKth(int k) { // write code here if(k > 100) return -1; vector<int> tmp(k+1); tmp[0] = 1; int t3 = 0,t5 = 0,t7 = 0; for(int i = 1;i < k+1;i++){ tmp[i] = min(tmp[t3]*3,tmp[t5]*5,tmp[t7]*7); if(tmp[i] == tmp[t3]*3) t3++; if(tmp[i] == tmp[t5]*5) t5++; if(tmp[i] == tmp[t7]*7) t7++; } return tmp[k]; } int min(int a,int b,int c){ int tmp=(b > c ? c : b ); return a > tmp ? tmp : a; } };