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

C++で再帰を使用してピラミッドを印刷する


この記事は、C++プログラミングの再帰的実装を使用してピラミッドパターンを印刷することを目的としています。これを行うためのアルゴリズムは次のとおりです。

アルゴリズム

Step-1 Set the height of the pyramid
Step-2 Adjust space using recursion function
Step-3 Adjust Hash(#) character using recursion function
Step-4 Call both functions altogether to print the Pyramid pattern

上記のアルゴリズムで述べたように、次の本物のC++コードの経済学は次のように書かれています;

#include <iostream>
using namespace std;
// function to print spaces
void print_space(int space){
   if (space == 0)
      return;
   cout << " ";
   // recursively calling print_space()
   print_space(space - 1);
}
// function to print hash
void print_hash(int pat){
   if (pat == 0)
      return;
   cout << "# ";
   // recursively calling hash()
   print_hash(pat - 1);
}
// function to print the pattern
void Pyramid(int n, int num){
   // base case
   if (n == 0)
      return;
   print_space(n - 1);
   print_hash(num - n + 1);
   cout << endl;
   // recursively calling pattern()
   Pyramid(n - 1, num);
}
int main(){
   int n = 5;
   Pyramid(n, n);
   return 0;
}

上記のコードをコンパイルすると、特殊文字「#」が関連付けられたピラミッドが次のように出力されます。

出力

      #
     # #
    # # #
   # # # #
  # # # # #

  1. C++を使用して再帰を使用せずにルートからリーフへのパスを出力するプログラム

    このチュートリアルでは、ルートノードから特定のバイナリツリー内のすべてのリーフノードへのパスを出力するプログラムについて説明します。 たとえば、次の二分木があるとしましょう この二分木には、4つのリーフノードがあります。したがって、ルートノードからリーフノードへのパスは4つになります。 これを解決するために、反復アプローチを使用します。二分木のプレオーダートラバーサルを実行している間、マップに親ポインタを格納できます。トラバーサル中にリーフノードに遭遇したときはいつでも、親ポインタを使用してルートノードからそのパスを簡単に出力できます。 例 #include <bits/st

  2. C++でのピラミッドのボリュームのプログラム

    ピラミッドのベースのタイプに応じて側面が与えられると、タスクはピラミッドの体積を計算することです。 ピラミッドは、ピラミッドの鋭いエッジを形成する共通点で外面が三角形で交わる3D図形です。ピラミッドの体積は、持つベースのタイプによって異なります。 -のように、ピラミッドを構成できるベースにはさまざまな種類があります。 三角形 -ピラミッドの体積よりも、ピラミッドの底辺が三角形になることを意味します 式-:( 1/6)* a * b * h 正方形 -ピラミッドの体積よりも、ピラミッドの底面が正方形になることを意味します 式-:(1/3)*(b ^ 2)* h 五角形 -ピラミッド