使用 C++ 查找五角锥数


五角锥数等于五角锥底部的物品数量。看看下方的几个五角数。

N までの五角数和等于第 N 个五角锥数。本文将讨论寻找第 N 个五角锥数,比如

Input : N = 4
Output : 40
Explanation : Sum of first four pentagonal numbers 1, 5, 12, 22 is 40.

Input : N = 6
Output : 126
Explanation : Sum of first four pentagonal numbers 1, 5, 12, 22, 35, 51 is 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;

   // traversing from number 1 to N.
   for (int i = 1; i <= N; i++) {
      // Calculating ith pentagonal number
      // and adding to the SUM.
      SUM = SUM + (3 * i * i - i) / 2;
   }
   cout <<"Nth Pentagonal Pyramidal Number: "<< SUM << endl;
   return 0;
}

输出

Nth Pentagonal Pyramidal Number: 126

有效方法

可以使用计算第 N 个五角锥数的公式 n2 * (n + 1) / 2,提高程序的效率。

示例

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

int main() {
   int N = 6, result;
   // calculating Nth pentagonal pyramidal number by formula.
   result = N * N * (N + 1) / 2;
   cout <<"Nth Pentagonal Pyramidal Number: " << result << endl;
   return 0;
}

输出

Nth Pentagonal Pyramidal Number: 126

结论

本文讨论了找到第 N 个五角锥数的问题。讨论了两种解决此问题的方法:遍历到第 N 个数字和使用公式。还讨论了用于解决此问题的 C++ 程序。我们可以在其他编程语言(例如 C、Java、Python 等)中编写相同的代码。希望本文对你有所帮助。

更新于: 2021 年 11 月 26 日

137 次浏览

开启你的职业

完成课程以获得认证

开始
广告