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