【蓝桥杯】java基础练习--矩阵乘法,供参考思路

简介: 先看题目

先看题目

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //N阶矩阵
        int N = sc.nextInt();
        //M次方
        int M = sc.nextInt();
        int[][] A= new int[N][N];
        for (int i=0;i<N;i++){
            for (int j=0;j<N;j++){
                A[i][j] = sc.nextInt();
            }
        }
        //0次幂
        if(M == 0) {
            for(int i = 0; i < N; i++) {
                for(int j = 0; j < N; j++) {
                    if(i == j) {
                        System.out.print(1 + " ");
                    }else {
                        System.out.print(0 + " ");
                    }
                }
                System.out.println();
            }
        }else if(M == 1){
            for(int i = 0; i < N; i++) {
                for(int j = 0; j < N; j++) {
                    System.out.print(A[i][j] + " ");
                }
                System.out.println();
            }
        }else {
            //当幂大于2时需要一个新的数组来配合计算
            int[][] A1 = A;
            //i为幂
            for (int i = 1; i < M; i++) {
                //暂时存储计算的值
                int[][] result = new int[N][N];
                for (int j = 0; j < N; j++) {
                    for (int k = 0; k < N; k++) {
                        int count = 0;
                        int temp = 0;
                        while (count < N) {
                            //第j行乘以第k列
                            temp += A[j][count] * A1[count][k];
                            count++;
                        }
                        result[j][k] = temp;
                    }
                }
                //将结果给A数组
                A = result;
            }
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < N; j++) {
                    System.out.print(A[i][j] + " ");
                }
                System.out.println();
            }
        }
    }
}



相关文章
|
10月前
|
Java
银行转账p图软件,对公转账截图生成器,java版开发银行模拟器【仅供学习参考】
这是一套简单的银行账户管理系统代码,包含`BankAccount`和`BankSystem`两个核心类。`BankAccount`负责单个账户的管理
|
算法 Java C++
【潜意识Java】蓝桥杯算法有关的动态规划求解背包问题
本文介绍了经典的0/1背包问题及其动态规划解法。
491 5
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
666 6
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
479 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
XML Java 数据格式
Java正则表达式大全(参考)
Java正则表达式大全(参考)
258 0
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
225 6
|
移动开发 JavaScript 搜索推荐
2024年最新1000个Java毕业设计选题参考
2024年最新1000个Java毕业设计选题参考
1879 2
|
存储 Java
创建一个乘法练习题生成器 using Java
创建一个乘法练习题生成器 using Java
352 0