• 締切済み

*で正三角形を出力

アスタリスクを使って正三角形を出力させるにはどうしたらいいのでしょうか?for文やif文など使って考えているのですが、わかりません。わかる人がいましたらよろしくお願いいたします。

みんなの回答

回答No.2

正三角形かどうかはコンソールの出力縦横比(文字の大きさや、文字と文字の間、行間等)に依存すると思いますが、その比を考えた(プログラム上で取り込んだ)上での正三角形でしょうか?? そうだとちょっとわかりませんが、単純に三角形を書けと言われた場合のプログラムを示します。 public class Triangle { public static void main(String args[]) { Triangle sankaku=new Triangle(); for(int i=3;i<=10;i++) { System.out.println("i="+i+"のとき"); sankaku.out(i); System.out.println(); sankaku.out2(i); System.out.println(); } } void out(int num) { for(int i=1;i<=num;i++) { for(int j=0;j<num-i;j++) { System.out.print(" "); } for(int j=0;j<2*i-1;j++) { System.out.print("*"); } System.out.println(""); } } void out2(int num) { for(int i=1;i<=num;i++) { for(int j=0;j<num-i;j++) { System.out.print(" "); } for(int j=0;j<2*i-1;j++) { if(j==0 || j==2*i-2 || i==num) System.out.print("*"); else System.out.print(" "); } System.out.println(""); } } }

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

コンソールで*を使ってということなので どうしてもいびつになりますが、 こんな感じかな ---------------------------------------------------------------- class Tetra { public static void main(String[] args){ int Len=20 ; //辺の長さ double Rate=2.2 ; //コンソール画面の縦横の比率 for(int i=0;i<Len/2;i++){ double len = i/Math.cos(Math.PI/3.0); for(int j=0;j<len*Math.sin(Math.PI/3.0)*Rate;j++){ System.out.print("*"); } System.out.println(); } for(int i=Len/2;i>=0;i--){ double len = i/Math.cos(Math.PI/3.0); for(int j=0;j<len*Math.sin(Math.PI/3.0)*Rate;j++){ System.out.print("*"); } System.out.println(); } } }

すると、全ての回答が全文表示されます。

関連するQ&A