※ ChatGPTを利用し、要約された質問です(原文:Java for文 だけで逆ピラミッドを作る)
Javaで逆ピラミッドを作る方法
このQ&Aのポイント
for文だけで逆ピラミッドを作る方法について教えてください。
質問者は*の数が2個ずつ減ればピラミッドを作りたいが、自分のコードでは1個ずつしか減らないです。
*を3と指定した場合、*****(5)
-***(3)
--*(1)と表示したいですが、現在は*****(5)
-****(4)
--***(3)となっています。
教えてください。
for 文だけで逆ピラミッドを作りたいのですが、*の数が2個ずつ減ればピラミッド
作成なのですが、私の文だと*は1個ずつしか減りません。
2個の指定はどのうように記述すればよいでしょうか?
*を3と指定した場合
***** (5)
-*** (3)
--* (1)
と表示したいのですが、下の文だと
***** (5)
-**** (4)
--*** (3)
となってしまいます。
import java.io.*;
class Sample4
{
public static void main(String [] args) throws IOException
{
System.out.println("いくつ*を入力しますか?");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int num = Integer.parseInt(str);
int j =0;
int i =0;
int s =0;
//行数制御
for(i=0; i<num; i++)
{
for(s=0; s<i; s++)
{
System.out.print("-");
}
for(j=num*2-1; j>i; j--)
{
System.out.print("*");
//System.out.print("d");
}
//改行タグ
System.out.print("\n");
}
}
}
お礼
k_kota さん ありがとうございます。 iの回数を指定するのに、iを使って計算をさせるという発想がありませんでした。 終了値に(num-i) が指定できたんですね。 この処理が終わってから回数をどうにかしようと思っているうちにどんどん ループの意味もわからなくなっていたところだったので助かりました。 これはできないとか決めつけないで文法をもう少し理解できるように いろいろチャレンジしてみます。 感謝です!