ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Day6

2021-01-06 23:03:51  阅读:129  来源: 互联网

标签:arr Day6 System int println public out


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;
    }
}

运行结果:

image-20210106202554027

  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]);
                }

            }
        }
    }
}

运行结果:

image-20210106212414643

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()));
    }
}

运行结果:

image-20210106224609240

标签:arr,Day6,System,int,println,public,out
来源: https://www.cnblogs.com/jiangsonglin/p/14243966.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有