エンジニア成長日記 swaponQ

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

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