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

N回折りたたんだ後の正方形の面積を求めるC++プログラム

正方形の一辺の長さと折りたたむ回数が与えられたとき、n回折りたたんだ後の正方形の面積を求めるのがこの記事のテーマです。

正方形とは、長方形と同じく2次元の図形で、4つの辺がすべて等しく、すべての内角が90度であるという特徴を持ちます。

正方形を折りたたむ際は、以下の手順に従います。

  • 1回目:正方形の左上から右下に向かって折り、三角形を作ります。

  • 2回目:上から下へ折りたたみます。

  • 3回目:再び左から右へ折りたたみます。

  • 4回目以降も、同じ手順を繰り返します。

入出力例

入力:side = 23, fold = 4
出力:n回折りたたんだ後の正方形の面積:6.53086

解き方のアプローチ

  • まず、折りたたむ前の正方形の面積を求めます(面積 = 一辺 × 一辺)。
  • このプログラムでは、折りたたむたびに面積が1/3になると仮定し、各段階で面積を更新していきます。
  • 最終的な面積は「元の面積 ÷ 3のfold乗」で求められます。

アルゴリズム

START
    関数 double area_nfold(double side, double fold)
    ステップ1 → 変数areaを宣言し、side * side で初期化する
    ステップ2 → (area * 1.0 / pow(3, fold)) を返す
    関数 int main()
    ステップ1 → double型の side = 23、fold = 4 を宣言・初期化する
    ステップ2 → 関数 area_nfold(side, fold) を呼び出し、結果を表示する
STOP

C++サンプルコード

#include <bits/stdc++.h>
using namespace std;
// n回折りたたんだ後の正方形の面積を計算する関数
double area_nfold(double side, double fold){
    double area = side * side;
    return area * 1.0 / pow(3, fold);
}
int main(){
    double side = 23, fold = 4;
    cout << "n回折りたたんだ後の正方形の面積:" << area_nfold(side, fold);
    return 0;
}

実行結果

n回折りたたんだ後の正方形の面積:6.53086

コードの解説

関数 area_nfold は、引数として受け取った一辺の長さから面積(side × side)を計算し、それを pow(3, fold)、つまり3のfold乗で割った値を返します。main 関数では side = 23、fold = 4 を渡して結果を出力しています。

計算の流れ

この例では、一辺23の正方形の元の面積は 23 × 23 = 529 です。4回折りたたむため、529 ÷ 3⁴ = 529 ÷ 81 ≈ 6.53086 となり、実行結果と一致します。

  1. C++で十二面体の表面積を計算するプログラム

    十二面体とは? 「十二面体(dodecahedron)」という言葉は、ギリシャ語に由来しています。「dodeca」は「12」、「hedron」は「面」を意味します。幾何学における十二面体とは、12枚の平面から構成される3次元の正多面体(プラトンの立体)のことです。 他の立体図形と同様に、十二面体にも以下のような特徴的な性質があります。 20個の頂点 30本の辺 12枚の正五角形の面(五角形は5つの辺を持つ多角形) 以下は十二面体の図です。 問題 一辺の長さが与えられたとき、その十二面体の表面積を求めるプログラムを作成します。ここでいう表面積とは、図形のすべての面が占める空間の総面積のこ

  2. C++で学ぶクイックソート(QuickSort)の仕組みと実装方法

    クイックソートとはクイックソート(Quicksort)は、比較に基づいて未ソートのリスト(配列)を並べ替えるソートアルゴリズムの一つです。「パーティション交換ソート(partition exchange sort)」とも呼ばれます。クイックソートは安定ソートではありません。これは、等しい値を持つ要素同士の相対的な順序が保持されないためです。ただし、配列に対してごくわずかな追加メモリだけで動作するため、メモリ効率に優れています。選択ソートと非常に似ていますが、常に最悪のパーティションを選んでしまうわけではない点が異なり、より洗練された形の選択ソートと捉えることもできます。クイックソートは最も効率