#include #include #include using namespace std;

int getKthUglyNumber(int k) { vector uglyNumbers(k); uglyNumbers[0] = 1; int p2 = 0, p3 = 0, p5 = 0; for (int i = 1; i < k; i++) { uglyNumbers[i] = min(min(uglyNumbers[p2] * 2, uglyNumbers[p3] * 3), uglyNumbers[p5] * 5); if (uglyNumbers[i] == uglyNumbers[p2] * 2) { p2++; } if (uglyNumbers[i] == uglyNumbers[p3] * 3) { p3++; } if (uglyNumbers[i] == uglyNumbers[p5] * 5) { p5++; } } return uglyNumbers[k - 1]; }

int main() { int k; cin >> k; int result = getKthUglyNumber(k); cout << result << endl; return 0;

丑数 就是只包含质因数 2、3 和 5 的正整数。现在想请问你第k小的丑数是多少。输入第一行输入一个整数 k。1= k = 1000c++

原文地址: http://www.cveoy.top/t/topic/i1yA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录