Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
108939 | 彭士宝 | 美丽数 | C++ | Time Limit Exceeded | 1000 MS | 272 KB | 725 | 2025-01-23 17:12:54 |
#include <iostream> using namespace std; // 计算小于等于x的美丽数的个数 int countBeautifulNumbers(int x) { return x / 3 + x / 5 - x / 15; } int main() { int N; while (cin >> N) { int left = 1, right = 1e9; // 设定二分查找的范围 while (left < right) { int mid = left + (right - left) / 2; if (countBeautifulNumbers(mid) < N) { left = mid + 1; // 当前mid的美丽数不足N个,需要增大范围 } else { right = mid; // 当前mid的美丽数足够或过多,尝试缩小范围 } } cout << left << endl; // 输出第N个美丽数 } return 0; }