Day6

1.定义方法,判断一个数是否是丑数。

package com.jiang.work.Day6;

import java.util.Scanner;

/**
 * ============================
 * 一定要注意命名规则
 * 一定要注意命名规则
 * 一定要注意命名规则
 * ============================
 * TODO
 *
 * @version 1.0
 * @Description: 1.定义方法,判断一个数是否是丑数。
 * @author: https://github.com/cqpsjsl
 * @date: 2021/1/6 19:41
 */
public class WorkOne {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请合理输入一个正整数:");
        int num = scanner.nextInt();
        boolean isUglyNum = IsUglyNumber(num);
        if (isUglyNum) {
            System.out.println(num + "是一个丑数");
        } else {
            System.out.println(num + "不是一个丑数");
        }
    }

    public static  boolean IsUglyNumber(int num) {
        //傻办法,搞个while循环
        //能被2、3、5整除进行下一次循环,否则返回0,是丑数最后肯定也是2、3、5,直接跳出
        String expression = "";//如果if循环可以每次打印表达式欸!
        do {
            if (num == 2 || num == 3 || num == 5) return true;
            num = (num % 3 == 0) ? num / 3 : (num % 5 == 0) ? num / 5 : (num % 2 == 0) ? num / 2 : 0;

        } while (num != 0);
        return false;
    }
}

运行结果:

Day6

  1. 输入一个 mn的矩阵 和一个np的矩阵,并初始化, 要求打印出两个矩阵的乘积。

    package com.jiang.work.Day6;
    
    
    import java.util.Arrays;
    import java.util.Scanner;
    
    /**
     * ============================
     * 一定要注意命名规则
     * 一定要注意命名规则
     * 一定要注意命名规则
     * ============================
     * TODO
     *
     * @version 1.0
     * @Description: 2. 输入一个 m*n的矩阵 和一个n*p的矩阵,并初始化, 要求打印出两个矩阵的乘积。
     * @author: https://github.com/cqpsjsl
     * @date: 2021/1/6 20:26
     */
    public class WorkTwo {
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入m:");
            int m = scanner.nextInt();
            System.out.println("请输入n:");
            int n =scanner.nextInt();
            System.out.println("请输入p:");
            int p =scanner.nextInt();
            //创建数组
            System.out.println("开始创建第一个数组");
            int[][] arr1 = createArray(m, n);
            System.out.println("开始创建第二个数组");
            int[][] arr2 = createArray(n, p);
            //打印数组
            System.out.println("第一个数组");
            printArr(arr1);
            System.out.println("第二个数组");
            printArr(arr2);
            //数组相乘
            int[][] arr3= multiplication(m, n, p, arr1, arr2);
            //打印相乘后的数组
            System.out.println("相乘后的数组");
            printArr(arr3);
    
        }
        /*
        数组相乘
        
         */
        public static int[][] multiplication(int m, int n, int p, int[][] arr1, int[][] arr2) {
            int[][] result = new int[m][p];
            for (int i = 0; i < m; i++) {
                for (int j = 0; j < p; j++) {
                    for (int k = 0; k < n; k++) {
                        result[i][j] += arr1[i][k] * arr2[k][j];
                    }
                }
            }
            return result;
        }
        /*
        打印数组
        
         */
        public static void printArr(int[][] arr1) {
            for (int i = 0; i < arr1.length; i++) {
                for (int j = 0; j < arr1[i].length; j++) {
                    if (j < arr1[i].length - 1) {
                        System.out.print(arr1[i][j] + " ");
                    }
                    if (j == arr1[i].length - 1) {
                        System.out.println(arr1[i][j]);
                    }
    
                }
            }
        }
    /*
    创建数组
    
     */
        public static int[][] createArray(int m, int n) {
            int[][] arr1 = new int[m][n];
            Scanner scanner = new Scanner(System.in);
            for (int i = 0; i < m; i++) {
                //每一行,现在开始输入每一列的元素
                for (int j = 0; j < n; j++) {
                    System.out.println("请输入坐标为["+i+","+j+"]的元素");
                    arr1[i][j] = scanner.nextInt();//后面改成手动输入Scanner
    
                }
            }
            return arr1;
        }
    }
    
    

    运行结果:

    请输入m:
    2
    请输入n:
    3
    请输入p:
    2
    开始创建第一个数组
    请输入坐标为[0,0]的元素
    1
    请输入坐标为[0,1]的元素
    2
    请输入坐标为[0,2]的元素
    6
    请输入坐标为[1,0]的元素
    4
    请输入坐标为[1,1]的元素
    6
    请输入坐标为[1,2]的元素
    7
    开始创建第二个数组
    请输入坐标为[0,0]的元素
    8
    请输入坐标为[0,1]的元素
    1
    请输入坐标为[1,0]的元素
    5
    请输入坐标为[1,1]的元素
    6
    请输入坐标为[2,0]的元素
    4
    请输入坐标为[2,1]的元素
    5
    第一个数组
    1 2 6
    4 6 7
    第二个数组
    8 1
    5 6
    4 5
    相乘后的数组
    42 43
    90 75
    
    Process finished with exit code 0
    
    
  2. 定义一个三维数组,并初始化之。

    写一个打印函数,负责打印三维数组中的数据,并测试。

package com.jiang.work.Day6;

/**
 * ============================
 * 一定要注意命名规则
 * 一定要注意命名规则
 * 一定要注意命名规则
 * ============================
 * TODO
 *
 * @version 1.0
 * @Description: 定义一个三维数组,并初始化之。
 * @author: https://github.com/cqpsjsl
 * @date: 2021/1/6 21:12
 */
public class WorkThr {
    public static void main(String[] args) {
        int m = 3;
        int n =2;
        int p =5;
        int[][][] arr = new int[m][n][p];
        //System.out.println("请输入第一行的元素");
        for (int i = 0; i < m; i++) {
            //每一行,现在开始输入每一列的元素
            for (int i1 = 0; i1 < n; i1++) {
                for (int i2 = 0; i2 < p; i2++) {
                    arr[i][i1][i2] = i+i1+i2+1;//后面改成手动输入Scanner
                }
            }
        }
        //打印数组
        arrPrint(arr);
    }
    public static void arrPrint(int[][][] arr){
        for (int i = 0; i < arr.length; i++) {
            //每一行,现在开始输入每一列的元素
            for (int i1 = 0; i1 < arr[i].length; i1++) {
                for (int i2 = 0; i2 < arr[i1].length; i2++) {
                    System.out.println("坐标[" + i +","+ i1 +","+ i2+"]是"+arr[i][i1][i2]);
                }

            }
        }
    }
}

运行结果:

Day6

4.写一个数组的工具类ArrayTool

package com.jiang.work.Day6;

/**
 * ============================
 * 一定要注意命名规则
 * 一定要注意命名规则
 * 一定要注意命名规则
 * ============================
 * TODO
 *
 * @version 1.0
 * @Description: ArrayTool
 * @author: https://github.com/cqpsjsl
 * @date: 2021/1/6 21:25
 */
public  class  ArrayTool {
    static int max;
    static int min;
    static int[] arr;

    public ArrayTool(int[] arr) {
        this.arr = arr;
    }

    public ArrayTool() {
    }

    public static int getMax() {//Access can be package-private
        max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]>max) max = arr[i];
        }
        return max;
    }
    public static int getMin() {
        min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]<min) min = arr[i];
        }
        return min;
    }
    //查表 元素
    public static int lookElement(int num) {
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]==num) return  i;
        }
        return -1;
    }
    //逆置数组元素
    public static int[] inverted() {
        //双指针 第一个和 最后一个交换
        for (int i = 0; i < arr.length/2; i++) {
            arr[i] = arr[i]+arr[arr.length-1-i]-(arr[arr.length-1-i]=arr[i]);
        }
        return arr;
    }
}
package com.jiang.work.Day6;

import java.util.Arrays;

/**
 * ============================
 * 一定要注意命名规则
 * 一定要注意命名规则
 * 一定要注意命名规则
 * ============================
 * TODO
 *
 * @version 1.0
 * @Description:
 * @author: https://github.com/cqpsjsl
 * @date: 2021/1/6 21:47
 */
public class WorkFour {
    public static void main(String[] args) {
        int[] arr = {1, 5, 8,6};
        ArrayTool arrayTool = new ArrayTool(arr);
        System.out.println("arrayTool.getMax() = " + arrayTool.getMax());
        System.out.println("arrayTool.getMin() = " + arrayTool.getMin());
        System.out.println("arrayTool.lookElement(8) = " + arrayTool.lookElement(8));
        System.out.println("Arrays.toString(arrayTool.inverted()) = " + Arrays.toString(arrayTool.inverted()));
    }
}

运行结果:

Day6

上一篇:Ionic模态窗全屏设置


下一篇:通讯录获取首字母并以首字母归类返回