- 締切済み
*を表示させるプログラムを
//putChars()メソッドを呼ばず(使わず) for文のネストで、できますか import java.util.Scanner; class IsoscelesTriangleRB { //--- 文字cをn個連続表示 ---// static void putChars(char c, int n) { while (n-- > 0) System.out.print(c); } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.println("右下直角の三角形を表示します。"); System.out.print("段数は:"); int n = stdIn.nextInt(); for (int i = 1; i <= n; i++) { putChars(' ', n - i); // ' 'をn - i個表示 putChars('+', i); // '+'を i 個表示 System.out.println(); } } }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- koko_u_
- ベストアンサー率18% (459/2509)
>//putChars()メソッドを呼ばず(使わず) >for文のネストで、できますか 単に「 putChars(' ', n - i); // ' 'をn - i個表示」等と書いてる所に putChars() の中身を展開すればいいけど、意味はないよね。
- auty
- ベストアンサー率58% (284/486)
単に短く書くなら、新たにJavaでも使えるようになった、printfを使ってみましょう。 例えば、 System.out.printf("%5s\n","+++++"); の様に記述しますが、数字5の部分を変化させる必要があります。変数にすれば良いですね。 以下のコードを参考にしてみてください。 ------------------------------------------------------------ import java.util.Scanner; class IsoscelesTriangleRB2 { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.println("右下直角の三角形を表示します。"); System.out.print("段数は:"); int n = stdIn.nextInt(); String ss="+"; for (int i = 1; i <= n; i++) { System.out.printf("%"+n+"s\n",ss); ss += "+"; } } }
お礼
参考になりました ありがとうございました。
お礼
ありがとうございました。