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;
}
}
运行结果:
-
输入一个 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
-
定义一个三维数组,并初始化之。
写一个打印函数,负责打印三维数组中的数据,并测试。
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]);
}
}
}
}
}
运行结果:
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()));
}
}
运行结果: