エンジニア成長日記 swaponQ

コンピュータサイエンス専攻の一般人のブログです。

新・明解 Java 入門 演習 4-22, 4-23, 4-24 解答

Hello, Terminal!swaponQです!

前回に引き続き、今回は演習 4-22, 4-23, 4-24 に取り組んでいこうと思います。

  • 演習 4-22

n段のピラミッドを表示するプログラムを作成せよ。
第i行目には(i - 1)* 2 + 1個の'*'記号を表示して、最終行である第n行目には(n - 1)* 2 + 1個の'*'記号を表示すること。

ex04_22.java

import java.util.Scanner;

class ex04_22 {
	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);
		int n;
		do {
			System.out.print("段数は:");
			n = stdIn.nextInt();
		} while (n < 0);
		for (int i = 1; i <= n; i++) {
			for (int j = (n - i); j > 0; j--) {
				System.out.print(' ');  //各段の左側の空白を描画
			}
			for (int k = 0; k < ((i - 1) * 2 + 1); k++) {
				System.out.print('*');  //空白に続く各段の*を指定個数描画
			}
			System.out.println();
		}
	}
}

実行結果

段数は:4
   *
  ***
 *****
*******
  • 演習 4-23

n段の数字ピラミッドを表示するプログラムを作成せよ。第i行目にはi % 10を表示すること。

ex04_23.java

import java.util.Scanner;

class ex04_23 {
	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);
		int n;
		do {
			System.out.print("段数は:");
			n = stdIn.nextInt();
		} while (n < 0);
		for (int i = 1; i <= n; i++) {
			for (int j = (n - i); j > 0; j--) {
				System.out.print(' ');
			}
			for (int k = 0; k < ((i - 1) * 2 + 1); k++) {
				System.out.print(i % 10);   //4-22の*をi%10に変更
			}
			System.out.println();
		}
	}
}

実行結果

段数は:4
   1
  222
 33333
4444444
  • 演習 4-24

正の整数値を読み込み、それが素数であるかどうかを判定するプログラムを作成せよ。
素数とは、2以上n未満のいずれの数でも割り切ることのできない整数nのことである。

ex04_24.java

import java.util.Scanner;

class ex04_24 {
	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);
		int n;
		do {
			System.out.print("正の整数値:");
			n = stdIn.nextInt();
		} while (n < 0);
		for (int i = 2; i <= n; i++) {
			if (i == n) {
				System.out.println("素数です。");
			} else if (n % i == 0) {
				System.out.println("素数ではありません。");
				break;
			}
		}
	}
}

実行結果

正の整数値:57
素数ではありません。


今回は以上です。お疲れ様でした!
次回は演習 4-25, 4-26, 4-27 です。

Goodbye, Terminal… swaponQでした!