Java(星描画)

Java

Q1.for文を用いて以下のように表示せよ。
[実行結果]
*****

[解答例]

public class Q1{
  public static void main(String[] args){
    for(int i=0;i<5;i++){
      System.out.print('*');
    }
    System.out.println();
  }
}

Q2.for文を用いて以下のように表示せよ。
[実行結果]
*****
*****
*****

[解答例]

public class Q2{
  public static void main(String[] args){
    for(int i=0;i<3;i++){
      for(int j=0;j<5;j++){
        System.out.print('*');
      }
      System.out.println();
    }    
  }
}

Q3.for文を用いて以下のように表示せよ。
[実行結果]
*
**
***
****
*****

[解答例]

public class Q3{
  public static void main(String[] args){
     for(int i=0;i<5;i++){
      for(int j=0;j<i+1;j++){
        System.out.print('*');
      }
      System.out.println();
    }
  }
}

Q4.for文を用いて以下のように表示せよ。
[実行結果]
*****
****
***
**
*

[解答例]

public class Q4{
  public static void main(String[] args){
     for(int i=0;i<5;i++){
      for(int j=0;j<5-i;j++){
        System.out.print('*');
      }
      System.out.println();
    }
  }
}

Q5.for文を用いて以下のように表示せよ。
[実行結果]
*************************
****************
*********
****
*

*
****
*********
****************
*************************

[実行例]

public class Q5{
  public static void main(String[] args){
    for(int i=5;i>=-5;i--){
      for(int j=0;j<i*i;j++){
        System.out.print('*');
      }
      System.out.println();
    }
  }
}

Q6.for文を用いて以下のように表示せよ。
[実行結果]

*****
****
***
**
*

[実行例]

public class Q6{
  public static void main(String[] args){
    for(int i=0;i<5;i++){
      for(int j=0;j<5;j++){
        if(j<i){
          System.out.print(' ');
        }else{
          System.out.print('*');
        }
      }
      System.out.println();
    }
  }
}

Q7.for文を用いて以下のように表示せよ。
[実行結果]

*         *
*         *
*         *
*         *
*         *
*         *
*         *
*         *
*         *
**       **
**       **
**       **
**       **
**       **
**       **
**       **
***     ***
***     ***
***     ***
***     ***
***     ***
****   ****
****   ****
****   ****
***** *****

[実行例]

public class Q7{
  public static void main(String[] args){
    for(int i=5*5;i>0;i--){
      for(int j=5;j>=-5;j--){
        if(i<=j*j){
          System.out.print('*');
        }else{
          System.out.print(' ');
        }
      }
      System.out.println();
    }
  }
}

Q8.キーボードからの入力に対し、それを段数とするピラミッドを描画する処理を実現せよ。
[実行例1]

何段のピラミッドをつくる?>5
    *
   ***
  *****
 *******
*********

[実行例2]

何段のピラミッドをつくる?>10
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************

[解答例]

public class Jn25{
  public static void main(String[] args){
    System.out.print("何段のピラミッドを作る?>");
    int num=new java.util.Scanner(System.in).nextInt();
    //何行?->入力された数(5と仮定)
    for(int i=0;i<num;i++){
      //何列?->0行目5,1行目6,2行目7つまりnum+i
      for(int j=0;j<num+i;j++){
        //空白何個?->0行目4,1行目3,2行目2つまりnum-1-i
        if(j<num-1-i){
          System.out.print(' ');
        }else{
          System.out.print('*');
        }
      }
      //列の出力が終わったら改行
      System.out.println();
    }
  }
}

Q9.キーボードからの入力に対し、それを高さとする菱形を描画する処理を実現せよ。
[実行例1]

正の奇数を入力>7
   *   
  * *  
 *   * 
*     *
 *   * 
  * *  
   *   

[実行例2]

正の奇数を入力>4
正の奇数を入力>-2
正の奇数を入力>5
  *  
 * * 
*   *
 * * 
  *  

[解答例]

public class Jn25{
	public static void main(String[] args){
		int n;
		do{
			System.out.print("正の奇数を入力>");
			n=new java.util.Scanner(System.in).nextInt();
		}while(n < 0 || n % 2 == 0);
		for(int i=-n/2;i<=n/2;i++){
			for(int j=0;j<n;j++){
				System.out.print(j==Math.abs(i) || j==n-1-Math.abs(i) ? "*":" ");
			}
			System.out.println();
		}
	}
}

Q10.キーボードからの入力に対し、それを高さとする以下のような図形を描画する処理を実現せよ。

[実行例]

正の奇数を入力>2
正の奇数を入力>-5
正の奇数を入力>9
*********
 *******
  *****
   ***
    *
   ***
  *****
 *******
*********

[解答例]

public class Jn25{
	public static void main(String[] args){
		int n;
		do{
			System.out.print("正の奇数を入力>");
			n=new java.util.Scanner(System.in).nextInt();
		}while(n < 0 || n % 2 == 0);
		for(int i=-n/2;i<=n/2;i++){
			for(int j=0;j<=Math.abs(i)+n/2;j++){
				System.out.print(n/2-Math.abs(i)> j?" ":"*");
			}
			System.out.println();
		}
	}
}

Q11.水田の幅を入力するとその長さを1辺とする正方形の水田を以下のように描画する処理を実現せよ。

[実行例]

水田の幅を入力>>6
水田田水田田
田水田田水田
田田水田田水
水田田水田田
田水田田水田
田田水田田水

[解答例]

import java.util.*;
public class Jn25{
	public static void main(String[] args){
		System.out.print("水田の幅を入力>>");
		int w = new Scanner(System.in).nextInt();
		for(int i=0;i<w;i++){
			for(int j=0;j<w;j++){
				System.out.print(j%3 == i%3 ? "水":"田");
			}
			System.out.println();
		}
	}
}

Q12.以下のように描画する処理を実現せよ。(幅高さは固定でよい)

[実行例]

  
|_||_||_||
_||_||_||_
||_||_||_|
|_||_||_||
_||_||_||_
||_||_||_|
 

[解答例]

import java.util.*;
public class Jn25{
	public static void main(String[] args){
		for(int i=0;i<6;i++){
			for(int j=10;j>0;j--){
				System.out.print(j%3 == i%3 ? "_":"|");
			}
			System.out.println();
		}
	}
}

コメント

タイトルとURLをコピーしました