Java编程题多维数组的使用
Posted 王六六的IT日常
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java编程题多维数组的使用相关的知识,希望对你有一定的参考价值。
1. 题目要求;
使用二维数组打印一个 10 行杨辉三角。
【提示】
- 第一行有 1 个元素, 第 n 行有 n 个元素
- 每一行的第一个元素和最后一个元素都是 1
- 从第三行开始, 对于非第一个元素和最后一个元素的元素。即:
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
思路
定义,赋值,遍历
代码如下:
//使用二维数组打印一个 10 行杨辉三角
package com.atguigu.exer;
public class YangHuiTest {
public static void main(String[] args) {
//1.声明并初始化二维数组 动态初始化
int[][] yangHui = new int[10][];
//2.给数组的元素赋值
for(int i=0;i<yangHui.length;i++){
//yangHui[0] = new int[1]; //第一行有 1 个元素, 第 n 行有 n 个元素
//yangHui[1] = new int[2];
yangHui[i] = new int[i+1];
//2.1给首末元素赋值
yangHui[i][0] = yangHui[i][i] = 1;
//2.2给每行的非首末元素赋值 从i=2开始
if(i>1){
//内层循环,从第二列开始j=1,因为是非首末元素,j小于当前行的列数-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] + " ");
}
System.out.println();//换行
}
}
}
结果如下:
【拓展之笔试题】创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。同时,要求元素的值各不相同。
代码如下:
class ArrayExer {
public static void main(String[] args) {
//方式一:
// int[] arr = new int[6];
// for (int i = 0; i < arr.length; i++) { // [0,1) [0,30) [1,31)
// arr[i] = (int) (Math.random() * 30) + 1;
// boolean flag = false;
// while (true) {
// for (int j = 0; j < i; j++) {
// if (arr[i] == arr[j]) {
// flag = true;
// break;
// }
// }
// if (flag) {
// arr[i] = (int) (Math.random() * 30) + 1;
// flag = false;
// continue;
// }
// break;
// }
// }
//
// for (int i = 0; i < arr.length; i++) {
// System.out.println(arr[i]);
// }
//方式二:
int[] arr = new int[6];
for (int i = 0; i < arr.length; i++) {// [0,1) [0,30) [1,31)
arr[i] = (int) (Math.random() * 30) + 1;
for (int j = 0; j < i; j++) {
if (arr[i] == arr[j]) {
i--;
break;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
以上是关于Java编程题多维数组的使用的主要内容,如果未能解决你的问题,请参考以下文章