初めに
皆さん。こんにちは!
DreamHanksの254cmです。
今回はロジック練習問題とその解説について作成していきます。
Java記事のまとめはこちらです。
逆三角数字
javaプログラムを作成して下記のような出力結果を出してください。
解説
上記の画像を見ると一つ目の行で
1 |
012345678910 |
0から10まで出力されています。
二つ目からは両方の数字が一つずつ減って
1 2 3 4 5 |
123456789 2345678 34567 456 5 |
になります。
0~10までの数字を一行ずつ出力しますが、両方の数字を切り詰めながら出力するのがポイントです。
つまり、0~10まで出力するfor、両端の数字の場合に処理を分けるif
上記の処理を6回繰り返すforが必要になります。
※上記の画像は6行を出力しているので、6回繰り返します。
しかし、両端の数字を消すだけではいけません。
両方の数字を消しさえすれば
1 2 3 4 5 6 |
012345678910 123456789 2345678 34567 456 5 |
になって問題の画像のようになりません。
消された数字の位置にスペースを入れて逆三角形の姿が維持されるようにします。
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public class LogicSample01 { public static void main(String[] args) { int[] a = new int[11]; for (int i = 0 ; i<a.length;i++) { a[i] = Integer.parseInt(args[i]); } for (int i= 0 ;i<6;i++) { for (int j = 0;j<a.length;j++) { if(j<i||j>a.length-i-1) { System.out.print(" "); } else { System.out.print(a[j]); } } System.out.println(); } } } |
終わりに
今回の記事は以上になります。
ご覧いただきありがとうございます。
コメント