新・明解 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でした!