zoukankan      html  css  js  c++  java
  • 蓝桥杯的矩阵乘法

    写了一个小时,我都晕死了,最后少考虑了个0次幂的情况,这时候就需要初始化的时候把对角线初始化为1就行

      问题描述
      给定一个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
     
    #include<iostream>
    int main()
    {
        int arr[100][100];
        int jz[100][100];
        int arr_1[100][100];
        int m,n;
        int i,j,k,l;
        scanf("%d %d",&m,&n);
        for(i=0;i<m;i++){
            for(j=0;j<m;j++){
                scanf("%d",&arr[i][j]);
                arr_1[i][j] = arr[i][j];
                if(i==j)jz[i][j] = 1;
                else jz[i][j] = 0;
            }
        }
        for(int v=0;v<n-1;v++){
            for(i=0;i<m;i++){ //控制行数 
                for(j=0;j<m;j++){  //
                    int sum=0;
                    for(k=0;k<m;k++){
                        sum += arr_1[i][k]*arr[k][j];
                    }
                    jz[i][j] = sum;
                }
            }
            for(i=0;i<m;i++){
                for(j=0;j<m;j++){
                    arr_1[i][j] = jz[i][j];
                }
            }
        }
        for(i=0;i<m;i++){
            for(j=0;j<m;j++){
                printf("%d",jz[i][j]);
                if(j!=m-1)printf(" ");
            }
            printf("
    ");
        }
    } 
  • 相关阅读:
    CSUOJ 1081 集训队分组
    HDU 1865 More is Better
    HDU 1325 Is It A Tree?
    HDU 1272 小希的迷宫
    CSUOJ 1217 奇数个的那个数
    CSUOJ 1010 Water Drinking
    CSUOJ 1162 病毒
    CodeForces 295B
    CodeForces 20C
    SPOJ MULTQ3
  • 原文地址:https://www.cnblogs.com/wysAC666/p/9816244.html
Copyright © 2011-2022 走看看