欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-05 23:00:52
这里写目录标题杨辉三角三级目录杨辉三角三级目录...


杨辉三角

使用二维数组打印一个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

上一篇: VBScript中变量作用域

下一篇: