使用 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 等)编写相同的代码。我们希望您觉得这篇文章有用。