• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:java for文だけで逆ピラミッドを作成する)

java for文で逆ピラミッドを作成する方法

このQ&Aのポイント
  • Javaの勉強中です。for文だけで逆ピラミッドを作成する方法を教えてください。
  • 整数をキーボードから入力し、その数だけの段数の逆ピラミッドを表示するプログラムを作成しています。
  • 現在のプログラムでは、星の個数が2つずつ減っていかないため、逆ピラミッドになりません。何か修正方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • k_kota
  • ベストアンサー率19% (434/2186)
回答No.1

日本語がいまいち分かりにくいので理解できていないかも知れませんが。 要するに*の数がループごとに二つずつ減らないといけないのですね。 for(j=0; j<num*2-1; j++) ここが繰り返し回数を決めています。j-0でj++となっているので 括弧内の真ん中、継続条件がj<X となっていればX回繰り返します。 なので,そこら辺を希望する回数になるように記入してください。 変数を使うのも複雑な式を使うのもOKです。

mcmonkey
質問者

お礼

回答ありがとうございました。 練習しているうちに*が1個ずつ減らす指定ができましたが。。 2個ずつ減る指定がわかりませんでした。 OKWAVEも投稿になれておらず・・・追記がわからないのでいったん質問をとじて 新しい記述をあげようと思います。 お時間ありましたら、ご教授くださいませ。

mcmonkey
質問者

補足

k_kotaさん。早々の回答ありがとうございます。 もうちょっと聞いてよいでしょうか。 ちょっと説明がヘタで通じないかもしれませんが。。 jは*の数を出す式ですが、sum=7を入力して7段後に*が1つになっているには 最初の段で13個の*が必要になりますよね。 なので、num*2-1 という式を j>num*2-1 の間続けるという考えで式をつくってみました。 私の式だと*の数は変化しません。 変化させるために、j-0でj++ なので j<X になれば良いととのことですが、 Xの意味が今ひとつわからないのです。 イメージは↓このようにだしたいのですが。。 1段目:************* 2段目:-*********** 3段目:--********* 4段目:---******* 5段目:----***** 6段目:-----*** 7段目:------* ←が1個になって終わる

関連するQ&A