こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

*を表示させるプログラムを

//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();
}
}
}

投稿日時 - 2008-03-29 05:37:44

QNo.3903914

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>//putChars()メソッドを呼ばず(使わず)
>for文のネストで、できますか

単に「 putChars(' ', n - i); // ' 'をn - i個表示」等と書いてる所に
putChars() の中身を展開すればいいけど、意味はないよね。

投稿日時 - 2008-03-29 09:02:20

お礼

ありがとうございました。

投稿日時 - 2008-04-04 02:34:12

ANo.1

単に短く書くなら、新たに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 += "+";
}
}
}

投稿日時 - 2008-03-29 06:37:21

お礼

参考になりました
ありがとうございました。

投稿日時 - 2008-04-04 02:34:41

あなたにオススメの質問