新・明解 Java 入門 演習 7-15, 7-16, 7-17 解答
Hello, Terminal!swaponQです!
前回に引き続き、今回は演習 7-15, 7-16, 7-17 に取り組んでいこうと思います。
- 演習 7-15
配列aの全要素の合計を求めるメソッドsumOfを作成せよ。
import java.util.Scanner;
class ex07_15{
static int sumOf(int[] a) {
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum += a[i];
}
return sum;
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("要素数:");
int n = stdIn.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
System.out.printf("a[%d] = ", i);
a[i] = stdIn.nextInt();
}
System.out.println("合計:" + sumOf(a));
}
}実行結果
要素数:4 a[0] = 3 a[1] = 2 a[2] = 1 a[3] = 1 合計:7
- 演習 7-16
配列aの全要素の最小値を求めるメソッドminOfを作成せよ。
import java.util.Scanner;
class ex07_16{
static int minOf(int[] a) {
int min = a[0];
for (int i = 1; i < a.length; i++)
if (a[i] < min) {
min = a[i];
}
return min;
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("要素数:");
int n = stdIn.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
System.out.printf("a[%d] = ", i);
a[i] = stdIn.nextInt();
}
System.out.println("最小値:" + minOf(a));
}
}実行結果
要素数:3 a[0] = 5 a[1] = 2 a[2] = 7 最小値:2
- 演習 7-17
探索するキーと同じ値の要素が複数個存在する場合、最も末尾側に位置する要素を見つけるメソッドlinearSearchRを作成せよ。
import java.util.Scanner;
class ex07_17 {
static int linearSearchR(int[] a, int key) {
int ans = -1;
for (int i = 0; i < a.length; i++){
if (a[i] == key) {
ans = i;
}
}
return ans;
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("要素数:");
int num = stdIn.nextInt();
int[] x = new int[num];
for (int i = 0; i < num; i++) {
System.out.print("x[" + i + "]:");
x[i] = stdIn.nextInt();
}
System.out.print("探す値:");
int ky = stdIn.nextInt();
int idx = linearSearchR(x, ky);
if (idx == -1)
System.out.println("その値の要素は存在しません。");
else
System.out.println("その値は" + "x[" + idx + "]にあります。");
}
}実行結果
要素数:4 x[0]:2 x[1]:5 x[2]:3 x[3]:5 探す値:5 その値はx[3]にあります。
お疲れ様でした!
次回は 7-18, 7-19, 7-20, 7-21 です。
Goodbye, Terminal… swaponQでした!