一、杨辉三角(帕斯卡三角)
package Demo;
import java.util.Scanner;
public class YangHuiTriangle {
public static void main(String[] args) {
int n;
System.out.println("Enter a integer.");
Scanner input1=new Scanner(System.in);
n=input1.nextInt();
YangHuiTriangle tri=new YangHuiTriangle();
tri.triangle(n);
}
public void triangle(int n){
int triangle[][]=new int[n][];//创建二维数组
for(int i=0;i<triangle.length;i++){//遍历二维数组的第1层
triangle[i]=new int[i+1];//初始化第2层数组的大小
for(int j=0;j<triangle[i].length;j++){//遍历第2层数组
if(i==0||j==0||j==triangle[i].length-1)//两侧的数组元素赋值为1
triangle[i][j]=1;
else//其他数值通过公式计算
triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1];
System.out.print(triangle[i][j]+"\t");//输出数组元素
}
System.out.println();
}
}
}
运行结果
Enter a integer.
6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
二、Arrays类常用方法
package Demo;
import java.util.Arrays;
public class ArraysDemo {
public static void main(String[] args) {
Integer[] arrayTest={6, 1, 9, 2, 5, 7, 6, 8, 6, 12};
Integer arr[]={1, 2, 3, 4, 5, 6};
//查找数组中数据3的下标
int binarySearch=Arrays.binarySearch(arr, 3);
System.out.println(binarySearch);
//在指定范围内查找数据3的下标
int binarySearch0=Arrays.binarySearch(arr, 0, 3, 3);
System.out.println(binarySearch);
//复制新的数组,复制长度为5
Integer[] copyArray1=Arrays.copyOf(arrayTest, 5);
arrayPrint(copyArray1);
//复制指定下标范围内的值,含头不含尾
Integer[] copyArray2=Arrays.copyOfRange(arrayTest, 2, 7);
arrayPrint(copyArray2);
//在指定下标内,对数组进制默认升序排序,这将改变原数组,下标含头不含尾
Integer[] sortArray1=Arrays.copyOf(arrayTest, arrayTest.length);
Arrays.sort(sortArray1, 0, 5);
arrayPrint(sortArray1);
//比较一维数组的内容是否相等
Integer[] arrayTest1=Arrays.copyOf(arrayTest, arrayTest.length);
System.out.println(Arrays.equals(arrayTest1, arrayTest));
//为数组填充元素
Integer[] fillArr=new Integer[5];
Arrays.fill(fillArr, 6);
arrayPrint(fillArr);
}
public static void arrayPrint(Object[] oArray){
System.out.println(Arrays.toString(oArray));
}
}
运行结果
2
2
[6, 1, 9, 2, 5]
[9, 2, 5, 7, 6]
[1, 2, 5, 6, 9, 7, 6, 8, 6, 12]
true
[6, 6, 6, 6, 6]
小收获:
- 之前一直以为二维数组每一行的元素个数是相同的,今天才发现原来也可以不同
- Java的数组可以动态初始化,这是优于C++数组的地方