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