获得数组最大值:
int[] arr = {5,8,1,4,5,6,9,7,8,4};
//2: 获取数组的最大值
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i]>max) {
max=arr[i];
}
}
System.out.println("最大值为:"+max);
获得数组次大值:
Arrays.sort(arr);
int max2 = arr.length-2;
System.out.println(max2);
/**
* 4:打印数组 如下
{1,3,6,8,4,3}
*
*
* *
* *
* * *
* * * * *
* * * * *
* * * * * *
*/
int[] arr = {1,3,6,8,4,3};
for (int i = 0; i < arr.length; i++) {
for (int j = i+1; j < arr.length;j++) {
if(arr[i]>arr[j]){
int x = arr[i];
arr[i] = arr[j];
arr[j] = x;
}
}
}
int rows = arr[arr.length - 1];
arr = new int[]{1,3,6,8,4,3};
for (int i = 1; i <= rows; i++) {
for (int j = 0; j < arr.length; j++) {
if(rows-arr[j]>=i){
System.out.print(" ");
}else {
System.out.print(" *");
}
}
System.out.println();
}
5: 使用for循环 打印99乘法表:打印四个方向的99乘法表
System.out.println("左下");
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
System.out.println("左上");
for (int i = 9; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
System.out.println("右下");
for(int i=1;i<=9;i++) {
for(int j=9;j>=1;j--) {
if(j>i) {
System.out.print("\t");
}else {
System.out.print(i*j+"="+i+"*"+j+"\t");
}
}
System.out.println();
}
System.out.println("右上");
for(int i=9;i>=1;i--) {
for(int j=9;j>=1;j--) {
if(j>i) {
System.out.print("\t");
}else {
System.out.print(i*j+"="+i+"*"+j+"\t");
}
}
System.out.println();
}
任意一个四位数(数字不能全相同),把所有数字从大到小排列,再把所有数字从小到大排列,
用前者减去后者得到一个新的数。重复对新得到的数进行上述操作,7 步以内必然会得到 6174。
使用java代码证明
public static void main(String[] args) {
Integer kapre = 6174;
System.out.println("请依次输入任意不相同的4个数: ");
int[] intArr = new int[4];
for (int i = 0; i < 4; i++) {
Scanner inputW = new Scanner(System.in);
intArr[i] = inputW.nextInt();
}
System.out.println("*******************************");
for (int i = 1; i < 9; i++) {
int kap = kaprekar(intArr);
if (Integer.valueOf(kap).equals(kapre)) {
System.out.println("第 " + i + " 步 Kaprekar常数6174出现!");
break;
}
intArr = intToArray(kap);
}
}
// 计算数值
static int kaprekar(int[] arrayInt) {
// 计算最小的四位数
// 数组升序
Arrays.sort(arrayInt);
String strIntMini = "";
for (int num : arrayInt) {
strIntMini = strIntMini + Integer.toString(num);
}
int intMini = Integer.parseInt(strIntMini);
System.out.println("最小的4位数是: " + intMini);
// 计算最大的四位数
// 数组降序
int sizeArray = arrayInt.length;
int[] newArrayInt = new int[sizeArray];
newArrayInt = arrayIntDesc(arrayInt);
String strIntMax = "";
for (int num : newArrayInt) {
strIntMax = strIntMax + Integer.toString(num);
}
int intMax = Integer.parseInt(strIntMax);
System.out.println("最大的4位数是: " + intMax);
int kap = intMax - intMini;
System.out.println("二数相减为:" + intMax + "-" + intMini + "=" + kap);
System.out.println("*******************************");
return kap;
}
// 数组降序
static int[] arrayIntDesc(int[] arrayInt) {
int sizeArray = arrayInt.length;
int[] newArrayInt = new int[sizeArray];
for (int i = arrayInt.length - 1; i >= 0; i--) {
newArrayInt[sizeArray - 1 - i] = arrayInt[i];
}
return newArrayInt;
}
// 数字转数组
static int[] intToArray(int num) {
String sNum = Integer.toString(num);
int lNum = sNum.length();
int[] arrayInt = new int[lNum];
for (int i = 0; i < lNum; i++) {
arrayInt[i] = Integer.parseInt(sNum.substring(i, i + 1));
}
return arrayInt;
}
打印一个9行的菱形
public static void main(String[] args) {
int row = 9;
for (int i = 1; i <= row / 2 + 1; i++) {
for (int j = 1; j <= row / 2 + 1 - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
for (int i = row / 2; i >= 1; i--) {
for (int j = 1; j <= row / 2 + 1 - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
这篇博客主要介绍了如何在Java中获取数组的最大值和次大值,并通过示例展示了数组的打印,包括99乘法表的四个方向打印。此外,还探讨了数字排列的数学问题,即6174现象的Java验证,以及如何打印一个9行的菱形图案。这些内容涵盖了数组操作和简单的算法应用。
871

被折叠的 条评论
为什么被折叠?



