Run ID:108939
提交时间: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; }