杨辉三角 | 回形数 | 复制 | 赋值数据结构介绍
程序员文章站
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中变量作用域