C++で三角形の周囲の長さ(外周)を求める方法
この記事では、三角形の周囲の長さ(外周)とは何か、三角形の種類ごとの周囲の長さの公式、そしてC++でそれらを求めるプログラムの書き方について詳しく解説します。
周囲の長さ(Perimeter)とは
周囲の長さとは、図形の外側を1周したときの総距離のことです。基本的には、図形を構成するすべての辺の長さを足し合わせたものになります。
三角形の周囲の長さ
三角形は3つの辺を持つ図形であるため、その周囲の長さは3辺の長さの合計として求められます。
公式:
周囲の長さ = すべての辺の合計

周囲の長さ = x + y + z
三角形の周囲の長さを求めるC++プログラム
サンプルコード
#include <iostream>
using namespace std;
int calcPerimeter(int x, int y, int z){
int perimeter = x + y + z;
return perimeter;
}
int main(){
int x = 5, y = 7, z = 8;
cout<<"三角形の3辺の長さは次の通りです \n";
cout<<"X = "<<x<<"\tY = "<<y<<"\tZ = "<<z<<endl;
cout<<"三角形の周囲の長さは "<<calcPerimeter(x, y, z);
return 0;
}実行結果
三角形の3辺の長さは次の通りです。
X = 5 Y = 7 Z = 8 三角形の周囲の長さは 20
三角形の種類別の周囲の長さ
数学には、特殊な性質を持つさまざまな種類の三角形が存在します。周囲の長さの基本公式は共通ですが、種類ごとに特化した公式を使うことでより簡単に計算できます。ここでは、代表的な三角形をそれぞれ見ていきましょう。
正三角形(Equilateral Triangle)
正三角形は、すべての辺の長さと内角が等しい特殊な三角形です。3辺がすべて同じ長さ「a」なので、周囲の長さは次の公式で求められます。

周囲の長さ = 3 × a
正三角形の周囲の長さを求めるC++プログラム
サンプルコード
#include <iostream>
using namespace std;
int calcPerimeter(int a){
int perimeter = 3*a;
return perimeter;
}
int main(){
int a = 5;
cout<<"正三角形の辺の長さは次の通りです \n";
cout<<"a = "<<a<<endl;
cout<<"三角形の周囲の長さは "<<calcPerimeter(a);
return 0;
}実行結果
正三角形の辺の長さは次の通りです。
a = 5 三角形の周囲の長さは 15
二等辺三角形(Isosceles Triangle)
二等辺三角形は、2つの辺の長さが等しく、残りの1辺だけが異なる長さを持つ特殊な三角形です。等しい2辺を「X」、異なる1辺を「Y」とすると、周囲の長さは次の公式で求められます。

周囲の長さ = 2 × X + Y
二等辺三角形の周囲の長さを求めるC++プログラム
サンプルコード
#include <iostream>
using namespace std;
int calcPerimeter(int x, int y){
int perimeter = 2*x + y;
return perimeter;
}
int main(){
int x = 5, y = 8;
cout<<"二等辺三角形の辺の長さは次の通りです \n";
cout<<"X = "<<x<<"\tY = "<<y<<endl;
cout<<"三角形の周囲の長さは "<<calcPerimeter(x, y);
return 0;
}実行結果
二等辺三角形の辺の長さは次の通りです。
X = 5 Y = 8 三角形の周囲の長さは 18
不等辺三角形(Scalene Triangle)
不等辺三角形は、3つの辺がすべて異なる長さを持つ三角形です。特別な性質がないため、基本公式のとおり単純に3辺を足し合わせるだけで周囲の長さが求められます。

周囲の長さ = x + y + z
まとめ
三角形の周囲の長さは、すべての辺の合計を計算するだけで求められます。種類ごとの公式を整理すると以下のようになります。
- 一般の三角形:x + y + z
- 正三角形:3 × a(3辺がすべて等しい)
- 二等辺三角形:2 × X + Y(2辺のみ等しい)
- 不等辺三角形:x + y + z(3辺すべて異なる)
C++では、これらの公式を関数としてまとめておくことで、どの種類の三角形にも柔軟に対応できるプログラムを作成できます。ぜひ実際にコードを書いて試してみてください。
-
C++で三角形の重心を求めるプログラムの作成方法
この記事では、三角形の3つの頂点の座標を格納した2次元配列が与えられたときに、その三角形の重心を求めるC++プログラムの作成方法を解説します。 三角形の重心とは、三角形の3本の中線がすべて交わる点のことです。 また、三角形の中線とは、ある頂点と、その対辺(向かい合う辺)の中点を結ぶ線分のことを指します。 それでは、具体的な例を使って問題を確認してみましょう。 入力 (-3, 1), (1.5, 0), (-3, -4) 出力 (-1.5, -1) 説明 重心 (x, y) = ((-3 + 1.5 - 3) / 3, (1 + 0 - 4) / 3) = (-1.5, -1) 解法のアプロ
-
C++で二分木の重複する部分木を検出する方法
問題の概要二分木が与えられたとき、その中に存在する重複する部分木(duplicate subtrees)をすべて見つける問題を考えてみましょう。ここでいう「重複」とは、構造とノードの値が完全に一致する部分木が2つ以上存在することを意味します。各種類の重複部分木について、代表としてどれか1つの根ノードを返せばよいことになっています。たとえば、次のような二分木があるとします。この木に含まれる重複する部分木は、以下の2つです。値 4 を持つ単一ノードの部分木(2か所に出現)根が 2 で、子に 4 を持つ部分木(2か所に出現)解法のアプローチ:部分木のシリアライズこの問題を効率的に解く鍵となるのは、部