C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++を使用して五角錐数を見つける


五角錐数は、五角錐のアイテム数と同じです。以下の五角数を見てください。

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番目の五角錐数を見つける問題について説明しました。この問題を解決するための2つのアプローチについて説明しました。N番目の数値までトラバースすることと、数式を使用することです。また、同じことを解決するためのC++プログラムについても説明しました。同じコードをC、Java、Pythonなどの他のプログラミング言語で書くことができます。この記事がお役に立てば幸いです。


  1. C++を使用して停止ステーションの数を見つける

    ポイントXとYの間にn個の中間駅があります。2つの駅が隣接しないように、s駅に停車するように列車を配置できるさまざまな方法の数を数えます。そのため、この記事では、停車駅の数を見つけるためのあらゆる可能なアプローチについて説明します。問題を見ると、sの駅数で列車を止めることができる組み合わせを見つける必要があることがわかります。 問題を解決するためのアプローチ 中間駅が8つあり、3つの中間駅で電車を止める方法を見つける必要がある例を見てみましょう。 n = 8, s = 3 (n-s)、つまり電車が止まらない駅が5つ残っています 電車が止まらないA、B、C、D、Eの5つの駅があります

  2. C++を使用してセットの反射関係の数を見つける

    この記事では、集合上の反射関係の数を見つけるためのアプローチについて説明します。この問題では、数nが与えられ、n個の自然数のセットで、反射関係の数を決定する必要があります。 反射関係 −集合Aの関係は、(a、a)が集合Aに属するすべてのaがRに属する場合、反射的と呼ばれます。たとえば、- Input : x = 1 Output : 1 Explanation : set = { 1 }, reflexive relations on A * A : { { 1 } } Input : x = 2 Output : 4 Explanation : set = { 1,2 }, reflex