C++ 中的第 N 个礼貌号码

在本教程中,我们将编写一个程序来查找第 n 个礼貌号码。

礼貌数是一个正数,可以写成 2 个或更多连续正数之和。

存在一个公式来找到第 n 个礼貌号码。公式为 n + log 2 (n + log 2 (n))

默认日志使用基数 e 计算。我们需要使用基数 2 进行计算。将默认日志结果除以 log(2) 得到以 e 为基数的 log 的值。

示例

让我们看看代码。

#include <bits/stdc++.h>

using namespace std;

double getNthPoliteNumber(double n) {

   n += 1;

   return n + (log((n + (log(n) / log(2.0))))) / log(2.0);

}

int main() {

   double n = 10;

   cout << (int)getNthPoliteNumber(n) << endl;

   return 0;

}

输出结果

如果你运行上面的代码,那么你会得到下面的结果。

14

结论

如果您对本教程有任何疑问,请在评论部分提及。

以上是 C++ 中的第 N 个礼貌号码 的全部内容, 来源链接: utcz.com/z/356677.html

回到顶部