Java面试题:求最大公约数、最小公倍数;将数组中两两相加之和为 10 的元素输出,已输出的元素禁止再次使用;求数组中的最大值与最小值

一、求两个数的最大公约数与最小公倍数

package cn.lemon;

public class test05 {
    public static void main(String[] args) {
        int a = 5;
        int b = 8;
        int p = a * b;
        while (b != 0) {
            int s = a % b;
            a = b;
            b = s;
        }
        System.out.println("最大公约数为:" + a);
        int m = p / a;
        System.out.println("最小公倍数为:" + m);
    }
}

二、将数组中两两相加之和为 10 的元素输出,已输出的元素禁止再次使用。

注意事项:

  • 只禁用已输出的元素,其他与输出元素值相同的元素不禁用
  • 数组:int[] arr = {1, 2, 1, 7, 8, 7, 9, 5, 3, 4, 8, 9, 6};
package cn.lemon;

public class test02 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 1, 7, 8, 7, 9, 5, 3, 4, 8, 9, 6};
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length; j++) {
                if (arr[i] + arr[j] == 10 && i != j) {//i != j 表示去掉 5 + 5 = 10 这项
                    System.out.println("数组下标为:" + i + ",数组元素为:" + arr[i] + "\t\t数组下标为:" + j + ",数组元素为:" + arr[j]);
                    arr[i] = 10;//用过的元素重新赋值,也就是让这个元素与其他任何一个元素相加都不会等于10
                    arr[j] = 10;
                }
            }
        }
    }
}

三、求数组中的最大值与最小值

package cn.lemon;

public class test06 {
    public static void main(String[] args) {
        int[] arr = {16, 32, 12, 5, 9, 88};
        int max = arr[0];
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
            if (min > arr[i]) {
                min = arr[i];
            }
        }
        System.out.println("最大值为:" + max);
        System.out.println("最小值为:" + min);
    }
}

你可能感兴趣的:(面试题)