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

指定した整数の正方形パターンを出力する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();
        int my_arr[][] = print_pattern(my_num);
        int eq_val = 0, sub_val = my_num - 1, n = my_num;
        int l = 0;
        if (my_num % 2 == 0)
            sub_val = my_num - 1;
        else
            sub_val = my_num;
        for (int i = 0; i < n / 2; i++){
            for (int j = 0; j < n; j++){
                System.out.format("%3d", my_arr[eq_val][j]);
            }
            System.out.println("");
            l = l + 2;
            eq_val = l;
        }
        eq_val = my_num - 1;
        for (int i = n / 2; i < n; i++){
            for (int j = 0; j < n; j++){
                System.out.format("%3d", my_arr[eq_val][j]);
            }
            sub_val = sub_val - 2;
            eq_val = sub_val;
            System.out.println("");
        }
    }
    public static int[][] print_pattern(int n){
        int my_arr[][] = new int[n][n];
        int eq_val = 1;
        for (int i = 0; i < n; i++){
            for (int j = 0; j < n; j++){
                my_arr[i][j] = eq_val;
                eq_val++;
            }
        }
        return my_arr;
    }
}

出力結果

Enter a range
1 2 3 4 5
11 12 13 14 15
21 22 23 24 25
16 17 18 19 20
6 7 8 9 10

コードの解説

Demoクラスとmainメソッド
まず、「Demo」という名前のクラス内にmainメソッドが定義されています。mainメソッドでは、Scannerクラスのインスタンスを生成し、ユーザーから範囲(上限値)を入力として受け取ります。

パターンの生成処理
入力された値をもとに、print_patternメソッドを呼び出して二次元配列を生成します。その後、前半部分と後半部分に分けて行を出力することで、特徴的な正方形パターンを形成しています。

print_patternメソッド
このメソッドはmainメソッドの後に定義されており、上限値を引数として受け取ります。内部ではn×nの二次元配列を作成し、二重ループで各要素を順番に埋めていきます。初期値として1を設定し、配列の各要素が処理されるたびに値を1ずつ増加させています。最後に、完成した配列を戻り値として返します。

このように、二次元配列とループ処理を組み合わせることで、数値の並び替えられた正方形パターンを簡単に出力することが可能です。

  1. C言語で文字列の逆順パターンを出力するプログラム

    文字列 str が与えられたとき、その逆順パターンを出力するのがこの記事の課題です。パターンは逆順で増加的に表示され、文字列が尽きた後は残りの部分を「*」で埋めます。 例えば、文字列「abcd」を入力した場合、1行目には「a」、2行目には「c b」、3行目には「* * d」を出力します。 例 入力: str[] = { abcd } 出力: a c b * * d 説明 − 1行目に1文字を出力します。 2行目に2文字を逆順に出力します。 3行目に3文字を逆順に出力します。文字列が3文字未満の場合は、残りの空白を「*」で埋めます。 入力: str[] = {tut

  2. C++プログラムで指定サイズの最大合計を持つ正方形部分行列を出力する方法

    N×N の行列が与えられたとき、M ≤ N かつ M ≥ 1 を満たすサイズ M×M の部分行列の中から、すべての要素の合計が最大となるものを見つけます。入力される行列には、0・正の整数・負の整数のいずれも含まれる可能性があります。 例 入力:     {{1, 1, 1, 1, 1},     {2, 2, 2, 2, 2},     {3, 3, 3, 3, 3},     {4, 4, 4, 4, 4},  &nbs