杨辉三角 | 回形数 | 复制 | 赋值数据结构介绍

2022-08-10,,,,

目录

    • 杨辉三角
    • 回形数格式方阵的实现
    • 使用简单数组
        • 拓展:修改题目,实现array2对array1数组的复制

杨辉三角

使用二维数组打印一个10行杨辉三角

public static main(String[] args){
  //1 声明初始化二维数组
  int[][] yanghui = new int[10][];
  //2 给数组的元素赋值
  for(int i = 0;i < yanghui.length;i++){
    yanghui[i] =new int[i+1];
    //给首末元素元素赋值
    yanghui[i][0] = yanghui[i][i] = 1;
    //给每行的非首末元素赋值
    if(i>1){
      for(int j = 1;j < yanghui[i].length -1;j++){
        yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
      }
    }
  }
  //3 遍历二维数组
  for(int i=0;i < yanghui.length;i++){
    for(int j=0;j < yanghui[i].length;j++){
      System.out.print(yanghui[i][j]);
    }
  }
}

回形数格式方阵的实现

从键盘输入一个整数(1~20)则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。

例如: 输入数字2,则程序输出:
1 2
4 3

public class RectangleTest {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入一个数字");
        int len = scanner.nextInt();
        int[][] arr = new int[len][len];
        int s = len * len;
        /*
         * k = 1:向右 k = 2:向下 k = 3:向左 k = 4:向上
         */
        int k = 1;
        int i = 0, j = 0;
        for (int m = 1; m <= s; m++) {
            if (k == 1) {
                if (j < len && arr[i][j] == 0) {
                    arr[i][j++] = m;
                } else {
                    k = 2;
                    i++;
                    j--;
                    m--;
                }
            } else if (k == 2) {
                if (i < len && arr[i][j] == 0) {
                    arr[i++][j] = m;
                } else {
                    k = 3;
                    i--;
                    j--;
                    m--;
                }
            } else if (k == 3) {
                if (j >= 0 && arr[i][j] == 0) {
                    arr[i][j--] = m;
                } else {
                    k = 4;
                    i--;
                    j++;
                    m--;
                }
            } else if (k == 4) {
                if (i >= 0 && arr[i][j] == 0) {
                    arr[i--][j] = m;
                } else {
                    k = 1;
                    i++;
                    j++;
                    m--;
                }
            }
        }

        // 遍历
        for (int m = 0; m < arr.length; m++) {
            for (int n = 0; n < arr[m].length; n++) {
                System.out.print(arr[m][n] + "\t");
            }
            System.out.println();
        }
    }
}

使用简单数组

(1)创建一个名为ArrayTest的类,在main()方法中声明array1和array2两个变量,他们是int[]类型的数组。

(2)使用大括号{},把array1初始化为8个素数:2,3,5,7,11,13,17,19。

(3)显示array1的内容。

(4)赋值 array2变量等于array1,修改array2中的偶索引元素,使其等于索引值

(如array[0]=0,array[2]=2)。打印出array1。

思考:array1和array2是什么关系?array1和array2地址值相同,都指向了堆空间的唯一的一个数组实体。

public class ArrayTest{
  public static void main(String[] args) {
    int array1,array2;
    array1 = new[]{2,3,5,7,11,13,17,19};
    for(int i =0;i<array1.length;i++){
      System.out.println(array1[i] + "\t");
    }
    //不能称作数值的复制,地址值是一样的 开辟的空间只有一个
    //如何理解:将array1保存的数组的地址,赋值给了array32,使得array1和array2共同指向堆空间中的同一个数组实体。
    array2 = array1;
    
    for(int i =0;i<array2.length;i++){
      if(i % 2 ==0){
        array2[i] = i;
      }	
    }
    System.out.println();
    for(int i =0;i < array1.length;i++){
      System.out.print(array1[i]+"\t");
    }
  }
}

拓展:修改题目,实现array2对array1数组的复制。

public class ArrayTest{
  public static void main(String[] args) {
    int array1,array2;
    array1 = new[]{2,3,5,7,11,13,17,19};
    for(int i =0;i<array1.length;i++){
      System.out.println(array1[i] + "\t");
    }
    //复制array1到array2
   	array2 = new int[array1.length];
	for(int i =0;i < array2.length;i++){
		array2[i] = array1[i];
	 }
    
    for(int i =0;i<array2.length;i++){
      if(i % 2 ==0){
        array2[i] = i;
      }	
    }
    System.out.println();
    for(int i =0;i < array1.length;i++){
      System.out.print(array1[i]+"\t");
    }
  }
}

好了,我亲爱的读者朋友,以上就是本文的全部内容了!!!

觉得有点用记得给我点赞哦!

通过坚持不懈地学习,持续不断地输出,你的编程基本功算得上是突飞猛进。

为了帮助更多的程序员,专注于分享有趣的 Java 技术编程和有益的程序人生。一开始,阅读量寥寥无几,关注人数更是少得可怜。但随自己的不断努力,阅读量和关注人都在猛烈攀升。

绝对不容错过,期待与你的不期而遇。

本文地址:https://blog.csdn.net/weixin_45606067/article/details/107066336

《杨辉三角 | 回形数 | 复制 | 赋值数据结构介绍.doc》

下载本文的Word格式文档,以方便收藏与打印。