使用 C++ 查找五角金字塔数

c++server side programmingprogramming

五角金字塔数等于五角形底金字塔中的项目数。查看下面的一些五角形数字。

直到 N 的五角形数字之和等于第 N 个五角金字塔数。在本文中,我们将讨论如何找到第 N 个五边形金字塔数,例如

输入:N = 4
输出:40
解释:前四个五边形数 1、5、12、22 的总和为 40。

输入:N = 6
输出:126
解释:前四个五边形数 1、5、12、22、35、51 的总和为 40。

寻找解决方案的方法

简单方法

根据示例,最简单的方法浮现在脑海中:遍历从 1 到 N 的数字并继续添加五边形数。五边形数可以通过公式 (3 * n2 - n) / 2 找到

例如,对于 n = 2,五边形数 = (3 * 22 - 2)/2 = 5

示例

#include <bits/stdc++.h>
using namespace std;

int main () {
   int N = 6, SUM = 0;

   // 从数字 1 遍历到 N。
   for (int i = 1; i <= N; i++) {
      // 计算第 i 个五边形数
      // 并将其添加到 SUM 中。
      SUM = SUM + (3 * i * i - i) / 2;
   }
   cout <<"第 N 个五角金字塔数:"<< SUM << endl;
   return 0;
}

输出

第 N 个五角金字塔数:126

高效方法

该程序可以通过使用公式来查找 N 个五角金字塔数,即 n2 * (n + 1) / 2,从而提高效率。

示例

#include <bits/stdc++.h>
using namespace std;

int main() {
   int N = 6, result;
   // 根据公式计算第 N 个五角锥数。
   result = N * N * (N + 1) / 2;
   cout <<"第 N 个五角锥数:<< result << endl;
   return 0;
}

输出

第 N 个五角锥数:126

结论

在本文中,我们讨论了寻找第 N 个五角锥数的问题。我们讨论了解决这个问题的两种方法:遍历到第 N 个数字和使用公式。我们还讨论了解决该问题的 C++ 程序。我们可以用其他编程语言(如 C、Java、Python 等)编写相同的代码。我们希望您觉得这篇文章有用。


相关文章