Javaでミラー上部の星形三角形パターンを出力するプログラムの作り方
この記事では、Javaを使ってミラー上部の星形三角形パターン(Mirror Upper Star Triangle Pattern)をコンソールに出力する方法を詳しく解説します。このパターンは、複数の for ループと出力ステートメントを組み合わせることで描画できます。
パターンの完成イメージ
例として、行数として「8」を入力した場合の実行結果は次のようになります。
入力:
行数を入力してください : 8
出力:
ミラー上部の星形パターン:
********
*******
******
*****
****
***
**
*上の行ほど星が多く、下に行くにつれて星が1つずつ減り、代わりに左側の空白が1つずつ増えていくのが特徴です。
アルゴリズム
このパターンを出力する手順は以下の通りです。
- 処理を開始します。
- 整数型の変数
i、j、k、my_inputを宣言します。 - ユーザーから行数を読み込むか、あらかじめ値を定義します。
- 外側の
forループの中で、行頭に挿入する空白を出力するための内側のループを回します。 - 続いて、別の
forループでその行に表示する星(*)を出力します。 - 1行分の出力が終わったら改行し、次の行へ移ります。
- 結果を表示します。
- 処理を終了します。
ロジックのポイント
- 外側のループ: 行数から1ずつ減らしながら、各行の星の数を制御します。
- 1つ目の内側のループ: 左側に入れる空白の数を担当します。行が下がるほど空白が増えます。
- 2つ目の内側のループ: その行に表示する星(*)を順に出力します。
なお、行数を n とした場合、二重ループで全行を描画するため計算量は O(n²) となります。
例1:ユーザー入力を行数として使う場合
ここでは Scanner クラスを使って、ユーザーがコンソールから入力した値を行数として利用します。
import java.util.Scanner;
public class MirrorTriangle {
public static void main(String args[]) {
int i, j, k, my_input;
System.out.println("必要なパッケージをインポートしました");
Scanner my_scanner = new Scanner(System.in);
System.out.println("Scannerオブジェクトを作成しました");
System.out.print("行数を入力してください : ");
my_input = my_scanner.nextInt();
System.out.println("ミラー上部の星形パターン:");
for (i = my_input; i >= 1; i--) {
for (j = my_input; j > i; j--) {
System.out.print(" ");
}
for (k = 1; k <= i; k++) {
System.out.print("*");
}
System.out.println("");
}
}
}実行結果:
必要なパッケージをインポートしました
Scannerオブジェクトを作成しました
行数を入力してください : 8
ミラー上部の星形パターン:
********
*******
******
*****
****
***
**
*例2:行数をあらかじめ固定しておく場合
次の例では、行数をプログラム内で直接定義しています。入力操作が不要なため、ロジックの動作確認や学習用に手軽に試せます。
public class MirrorTriangle {
public static void main(String args[]) {
int i, j, k, my_input;
my_input = 8;
System.out.println("行数は " + my_input + " に設定されています");
System.out.println("ミラー上部の星形パターン:");
for (i = my_input; i >= 1; i--) {
for (j = my_input; j > i; j--) {
System.out.print(" ");
}
for (k = 1; k <= i; k++) {
System.out.print("*");
}
System.out.println("");
}
}
}実行結果:
行数は 8 に設定されています
ミラー上部の星形パターン:
********
*******
******
*****
****
***
**
*まとめ
ミラー上部の星形三角形パターンは、「空白を出力するループ」と「星を出力するループ」を組み合わせるだけで簡単に実装できます。my_input の値を変更すれば、任意のサイズのパターンに対応できるので、ぜひいろいろな行数で試してみてください。
-
指定した整数の正方形パターンを出力するJavaプログラム
指定された整数に基づいて正方形パターンを出力したい場合、以下のようなJavaコードを実装できます。 サンプルコード import java.util.*; import java.lang.*; public class Demo{ public static void main(String[] args){ Scanner my_scan = new Scanner(System.in); System.out.println(Enter a range); int my_num = my_scan.nextInt();
-
Pythonで逆三角形の星形パターン(*)を出力するプログラム
Pythonで星(アスタリスク)のパターンを逆順、つまり逆三角形の形に出力したい場合、「for」ループを使用するのが最もシンプルな方法です。forループを使えば、指定した範囲の数値を順番に繰り返し処理しながら、必要な文字を必要な回数だけ出力できます。ポイントは、ループが1回回るごとにカウント値を減算していくことです。以下に具体的な実装例を示します。サンプルコードN=6 print(変数Nを + str(N) + に初期化しました) print(逆順の星形パターンを表示します) for i in range(N, 0, -1): print((N-i) * + i * *)実行結果変