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

C++五胞体数


五胞体数は、パスカルの三角形の5番目の数として表されます。ご存知のように、これは5番目の数字です。つまり、パスカルの三角形に少なくとも5つの数字が必要です。したがって、このシリーズの最初の数字は 1 4 6 4 1から始まります。 パスカルの三角形の4行目。したがって、このチュートリアルでは、たとえば、n番目の五胞体数を見つける必要があります

Input : 1

Output : 1

Input : 4

Output : 35

次の図から出力を確認できます-

C++五胞体数

この問題については、可能な限り、これは一種のシリーズであるため、ソリューションでこのシリーズのパターンを見つけようとします。

解決策を見つけるためのアプローチ

このプログラムでは、すべての数字が続くこのシリーズの一般式を見つけます。次に、値を数式に入力して、出力を取得する必要があります。

上記のアプローチのC++コード

#include<bits/stdc++.h>
using namespace std;
int answer(int n){ // function to find the value of nth pentatope number
    return (n * (n+1) * (n+2) * (n+3))/ 24; // the formula that we derived
}
int main(){
    int n = 6; // the pentatope number that we need to find
    cout << answer(n) << "\n";
    n = 4;
    cout << answer(n) << "\n";
    return 0;
}

出力

126
35

上記のコードの全体的な複雑さはO(1)です。 つまり、一定の複雑さで機能します。これは、時間は入力サイズに依存せず、任意の入力に対して同時に回答を計算できるため、達成できる最高の時間計算量です。

コードを理解する

上記のアプローチでは、ご存知のように、シリーズのパターンを見つけ、そのパターンから一般式を考案しようとしていました。今、私たちが思いついた式は(n *(n + 1)*(n + 2)*(n + 3))/ 24 ここで、nは検索する必要のある用語です。

結論

このチュートリアルでは、問題を解決して、N番目の五胞体数の式を考案します。また、この問題のC ++プログラムと、解決した完全なアプローチについても学びました。同じプログラムを、C、java、python、その他の言語などの他の言語で作成できます。このチュートリアルがお役に立てば幸いです。


  1. C++のエンクレーブの数

    2D配列Aを指定したとすると、各セルは0(海を表す)または1(陸を表す)になります。ここでの移動は、ある土地の正方形から別の土地の正方形へ、またはグリッドの境界から離れて4方向に歩くことで構成されます。グリッド内の土地の正方形の数を見つける必要があります。この数の移動でグリッドの境界を離れることはできません。したがって、グリッドが-のような場合 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0で囲まれたものが3つあり、1が囲まれていないため、答えは3になります。 これを解決するには、次

  2. C++でのAdamNumber

    このセクションでは、与えられた番号がアダム番号であるかどうかをチェックできるプログラムを作成する方法を説明します。コードに飛び込む前に、アダムの番号を見てみましょう。 アダム数はnと言う数であり、nの二乗とnの逆の二乗が互いに逆である場合、その数はアダム数です。例として、13という数を考えてみましょう。逆は31です。13の平方は169で、31の平方は961です。169と961は互いに逆なので、13はアダム数です。 指定された番号がアダム番号ではないかどうかを確認する手順- 番号nを取る 数値を逆にしてmに格納します nの正方形を取得し、sq_nに保存します mの正方形を取得し、sq