题目:
1.公司年销售额求和
某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99
2.打印杨辉三角形(行数可以键盘录入)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
- 第一行一个1 ,第二行2个1
- 从第三行开始,每一行的第一个数和最后一个数都是1
- 每一行的元素个数,和行数相同
- 从第3行开始,每一行的除第1个和最后一个元素之外的其他元素, 第i行第j列的值 = 第i-1行第j列值 + 第i-1行第j - 1列
- 输入一个 mn的矩阵 和一个np的矩阵,并初始化, 要求打印出两个矩阵的乘积。
- 定义一个三维数组,并初始化之。写一个打印函数,负责打印三维数组中的数据,并测试。
//1.公司年销售额求和
public class Exercise {
public static void main(String[] args) {
//准备数据
int[][] sales = {{22,66,44}, {77,33,88}, {25,45,65}, {11,66,99}};
System.out.println(sum(sales));
}
public static int sum(int[][] a) {
int total = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
total += a[i][j];
}
}
return total;
}
public class Exercise {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
printTwoDemisionArray(triangleYang(n));
}
public static int[][] triangleYang(int n) {
int[][] result;
if (n == 1) {
result = new int[][]{{1}};
return result;
}
if (n == 2) {
result = new int[][]{{1}, {1, 1}};
return result;
}
//当 n>=3 的的时候
//第二种初始化方式,初始化结果二维数组
result = new int[n][];
//先初始化第一行和第二行数据
result[0] = new int[]{1};
result[1] = new int[]{1, 1};
//从第三行开始,计算杨辉三角的值
for (int i = 2; i < n; i++) {
result[i] = new int[i + 1]; //第i(从0开始编号)行, 元素个数 i + 1
result[i][0] = 1; //一行的第一个元素值为1
result[i][i] = 1; //一行的最后一个元素,值也为1
for (int j = 1; j < i; j++) {
//第i行第j列的值 = 第i - 1行第j列值 + 第i - 1行第j - 1列
result[i][j] = result[i - 1][j] + result[i -1][j - 1];
}
}
return result;
}
public static void printTwoDemisionArray(int[][] arr) {
// int[][] arr.length 表示的是二维数组的长度(可以包含的一维数组的个数)
// int[] arr[i]是一个一维数组的引用变量 arr[i].length 二维数组中第i个一维数组的长度
//双重循环,遍历二维数组
//外层循环,控制访问二维数组中的哪个一维数组
for (int i = 0; i < arr.length; i++) {
//针对二维数组中的每一个一维数组的遍历
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
//System.out.println(Arrays.toString(arr[i]));
System.out.println();
}
}
import java.util.Scanner;
public class Exercise {
public static void main(String[] args) {
System.out.println("求m行n列的矩阵A和n行p列的矩阵B的乘积矩阵C");
Scanner sc = new Scanner(System.in);
System.out.println("请输入矩阵A的行数m:");
int m = sc.nextInt();
System.out.println("请输入矩阵A的列数n:");
int n = sc.nextInt();
System.out.println("请输入矩阵B的列数p:");
int p = sc.nextInt();
int arr1[][] = new int[m][n];//矩阵为m*n的矩阵
int arr2[][] = new int[n][p];//矩阵为n*p的矩阵
//为m*n矩阵传入初始值
System.out.println("请为矩阵A赋初值:");
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
arr1[i][j]=sc.nextInt();//向矩阵arr1中输入数据
}
}
//为n*p矩阵传入初始值
System.out.println("请为矩阵B赋初值:");
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
arr2[i][j]=sc.nextInt();//向矩阵arr2中输入数据
}
}
sc.close();
//两数组相乘
int[][] arr = new int[m][p];//创建矩阵用于存放乘积
for(int i = 0; i< m; i++) {//矩阵行控制量
for(int j = 0; j< p; j++) {//矩阵列控制量
for(int k = 0; k < n; k++) {//矩阵arr的列
arr[i][j] = arr1[i][k]+arr2[k][j];//给矩阵arr元素赋值
}
}
}
//输出乘积矩阵arr
System.out.println("乘积矩阵C为:");
for(int i = 0; i < m; i++) {
for(int j = 0; j < p; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
import java.util.Arrays;
public class Exercise1 {
public static void main(String[] args) {
//1、定义一个三维数组
int[][][] t = new int[2][2][3];
//2、初始化
for (int i = 0; i < t.length; i++) {
for (int j = 0; j < t[i].length; j++) {
for (int k = 0; k < t[i][j].length; k++) {
t[i][j][k] = i + j + k;
}
}
}
//3、打印三维数组的方法测试
print(t);
}
private static void print(int[][][] t){
for (int i = 0; i < t.length; i++) {
for (int j = 0; j < t[i].length; j++) {
System.out.println("t["+ i +"][" + j + "] = "+ Arrays.toString(t[i][j]));
}
}
}
}