蓝桥杯BASIC-17 基础练习 矩阵乘法

蓝桥杯BASIC-17 基础练习 矩阵乘法

问题描述
  给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
  例如:
  A =
  1 2
  3 4
  A的2次幂
  7 10
  15 22
输入格式
  第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
  接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值
输出格式
  输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开
样例输入
2 2
1 2
3 4
样例输出
7 10
15 22

  一开始交了好几次都是运行超时,我以为是循环的问题,简化了好几个循环之后还是不可以,没过的数据看了好几遍都以为是数组过大,就是没注意到0次幂是单位矩阵的问题,把仔细思考周全写在脑门上警示自己!!!!

上代码

#include <iostream>
#include <bits/stdc++.h>

using namespace std;


int main()
{
    int n, m;
    cin >> n >> m;
    int a[35][35];
    int b[35][35];
    int c[35][35];
    int i, j, k;
    for(i=0; i<n; i++){
        for(j=0; j<n; j++){
            cin >> a[i][j];
            b[i][j] = a[i][j];
        }
    }
    /*for(i=0; i<n; i++){
        for(j=0; j<n; j++)
            cout << b[i][j] << " ";
        cout << endl;
    }这地方是简化*/
    if(m == 0){
        for(i=0; i<n; i++){
            for(j=0; j<n; j++){
                if(i == j)
                    b[i][j] = 1;
                else
                    b[i][j] = 0;
            }
        }
    }
    else{
        int mm = m-1;
        while(mm--){
            /*for(i=0; i<n; i++){
                for(j=0; j<n; j++)
                    c[i][j] = 0;
            }下面简化,直接用memset初始化*/
            memset(c, 0, sizeof(c));
            for(i=0; i<n; i++){
                for(j=0; j<n; j++){
                    for(k=0; k<n; k++){
                        c[i][j] += b[i][k]*a[k][j];
                    }
                }
            }
            for(i=0; i<n; i++){
                for(j=0; j<n; j++)
                    b[i][j] = c[i][j];
            }
        }
    }
    for(i=0; i<n; i++){
        for(j=0; j<n; j++)
            cout << b[i][j] << " ";
        cout << endl;
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
instantclient-basic-w是Oracle提供的一个软件包,用于在Windows操作系统上运行Oracle数据库客户端应用程序。它是Oracle Instant Client系列中的一个成员,旨在简化和加速Oracle数据库的部署和连接过程。 instantclient-basic-w包含了Oracle客户端应用程序所需的基本组件,包括:OCI(Oracle Call Interface)库、SQL*Plus命令行工具、创建Oracle数据库连接的必要配置文件以及一些辅助工具等。使用这个软件包可以方便地在Windows系统上进行Oracle数据库的连接、数据查询、事务处理等各种数据库操作。 与其他Oracle数据库客户端软件相比,instantclient-basic-w具有以下几个优点: 1. 简化部署:使用这个软件包可以避免繁琐的安装过程,只需要解压缩即可安装使用。无需安装整个Oracle数据库软件,减少了部署和维护的成本和工作量。 2. 轻量级:instantclient-basic-w只包含了必要的组件,不占用过多的系统资源,适合在较低配置的Windows计算机上运行。 3. 高性能:OCI库是Oracle数据库的核心部分,通过使用这个库,可以获得较高的数据库访问性能和效率。 4. 兼容性好:instantclient-basic-w与其他Oracle数据库客户端软件兼容性良好,可以与Oracle数据库的不同版本进行连接和通信。 5. 简单易用:SQL*Plus命令行工具提供了一个交互式的界面,使用户可以方便地输入和执行SQL语句,对数据库进行管理和查询。 总之,instantclient-basic-w是一个方便、高效、易用的Oracle数据库客户端软件包,为在Windows系统上进行Oracle数据库操作提供了便利和支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值