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

C++でのパスカルの三角形II


k≤33である非負のインデックスkがあるとすると、パスカルの三角形のk番目のインデックス行を見つける必要があります。

したがって、入力が3のような場合、出力は[1,3,3,1]

になります。

これを解決するには、次の手順に従います-

  • サイズrowIndex+1の配列パスカルを定義し、これに0を入力します

  • 初期化r:=0の場合、r <=rowIndexの場合、更新(rを1増やします)、実行-

    • pascal [r]:=1、prev:=1

    • 初期化i:=1の場合、i

      • cur:=pascal [i]

      • pascal [i]:=pascal [i] + prev

      • 前:=cur

  • パスカルを返す

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
public:
   vector<int> getRow(int rowIndex) {
      vector<int> pascal(rowIndex + 1, 0);
      int prev, cur, r, i;
      for (r = 0; r <= rowIndex; r++) {
         pascal[r] = prev = 1;
         for (i = 1; i < r; i++) {
            cur = pascal[i];
            pascal[i] += prev;
            prev = cur;
         }
      }
      return pascal;
   }
};
main(){
   Solution ob;
   print_vector(ob.getRow(3));
}

入力

3

出力

[1, 3, 3, 1, ]

  1. C++で三角形の図心を見つけるプログラム

    この問題では、三角形の3つの頂点の座標を示す2D配列が与えられます。私たちのタスクは、C++で三角形のセントロイドを見つけるプログラムを作成することです。 セントロイド 三角形の3つの中央値は、三角形の3つの中央値が交差する点です。 中央値 三角形の頂点は、三角形の頂点とその反対側の線の中心点を結ぶ線です。 問題を理解するために例を見てみましょう 入力 (-3, 1), (1.5, 0), (-3, -4) 出力 (-3.5, -1) 説明 Centroid (x, y) = ((-3+2.5-3)/3, (1 + 0 - 4)/3) = (-3.5, -1) ソリューションアプロ

  2. C++の平行四辺形内の三角形の面積

    図形の面積は、2次元平面での図形の範囲です。 三角形 は3辺のポリゴンです。 平行四辺形 は、反対側が等しく平行な四辺形です。 このプログラムでは、底辺と高さが平行四辺形で、平行四辺形と同じ底辺に三角形が内接しています。指定された底辺と高さを使用して三角形の面積を計算する必要があります。 平行四辺形は次の式で与えられるため、構築された三角形の面積は平行四辺形の底と一般的な高さを取ります=0.5*底*高さ area = ½ * b * h 例 #include<iostream> #include<math.h> using names