30 特殊的矩阵运算

news/2025/2/23 22:09:48

30 特殊的矩阵运算

作者: 卢婷时间限制: 1S章节: 二维数组

问题描述 :

输入m个方阵,方阵的元素是非0整数。对于n阶方阵A,明明现在需要进行特殊的运算。

例如:

A: 5 1 3

5 8 7

2 6 9

方阵A有两条对角线:从左上角到右下角的对角线,元素为5 8 9,以及从左下角到右上角的对角线,元素为2 8 3。

求A两条对角线元素相乘的和(对角线积),52+88+9*3=101;

求A两条对角线元素相除的和(对角线商):5/2+8/8+9/3=6。 (注意:求对角线商时用整除,所以5/2的结果为2。)

输入说明 :

输入由多组数据组成。

  1. 第一行有一个整数m,表示接下来有m组测试数据;
    
  2. 第二行有一个整数n,表示n阶方阵,0 < n < 10;
    
  3. 接下来的m行,每行有n*n个非0整数,整数间用空格分隔,每行对应一个矩阵。例如上述方阵A的输入格式为:5 1 3 5 8 7 2 6 9
    

输出说明 :

对每个矩阵,输出两个整数,表示对角线积和对角线商,用空格分隔。每个矩阵的输出结果占一行。

输入范例 :

2
3
5 1 3 5 8 7 2 6 9
-2 3 2 1 2 49 22 1 2
输出范例 :

101 6
-36 2

import java.util.Scanner;

public class test_30 {
    /**
     * 30 特殊的矩阵运算
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();
        int m = sc.nextInt();
        sc.nextLine();
        String[] split;
        int[][] a = new int[m][m];
        int[] b = new int[m];
        int[] c = new int[m];
        int mutil,div,count,x,y;
        while(n-->0){
            split = sc.nextLine().trim().split(" ");
            x=0;
            y=m-1;
            mutil=0;
            div=0;
            count=0;
            for (int j = 0; j < m; j++) {
                for (int k = 0; k < m; k++) {
                    if(j==k){
                        b[x++]=Integer.valueOf(split[count]);
                    }
                    if(j+k==m-1){
                        c[y--]=Integer.valueOf(split[count]);
                    }
                    a[j][k] = Integer.valueOf(split[count++]);
                }
            }
            for (int i = 0; i < m; i++) {
                mutil+=b[i]*c[i];
                div+=b[i]/c[i];
            }
            System.out.println(mutil+" "+div);
        }
    }
}


http://www.niftyadmin.cn/n/709965.html

相关文章

打印菱形C语言

问题描述 题目描述 输出一个n行(n为奇数)的菱形且该菱形由输入的字符ch构成&#xff0c;如输入的n7&#xff0c;ch*&#xff0c;输出以下图案&#xff1a; * 如输入的n5&#xff0c;ch?&#xff0c;输出以下图案&#xff1a; ? ??? ??? ??? ? 输入 输入若干组数…

字符串查找算法--R向单词查找树和三向单词查找树

2019独角兽企业重金招聘Python工程师标准>>> 字符串查找算法分析 算法对比&#xff1a; 算法&#xff08;数据结构&#xff09;优点二叉查找树&#xff08;BST&#xff09;适用于随机排列的键2-3树查找&#xff08;红黑树&#xff09;有性能保证线性探测法&#xff…

28 n层正方形

28 n层正方形 作者: Turbo时间限制: 1S章节: 二维数组 问题描述 : 编写程序&#xff0c;输出n层正方形图案。正方形图案最外层是第一层&#xff0c;每层用的数字和层数相同。 输入说明 : 正方形图案的层数n&#xff08;小于等于25&#xff09;。 输出说明 : 2n-1行2n-1列…

打印空心的菱形C语言

题意描述 输出一个n行(n为奇数)的菱形且该菱形由输入的字符ch构成&#xff0c;如输入的n7&#xff0c;ch*&#xff0c;输出以下图案&#xff1a; * *如输入的n5&#xff0c;ch?&#xff0c;输出以下图案&#xff1a; ? ? ? ? ? ? ? ? 输入 输入若干组数据.每组数据由…

27 蛇形方阵

27 蛇形方阵 作者: Turbo时间限制: 1S章节: 二维数组 问题描述 : 输出一个如下的n阶方阵。例如&#xff0c;若读入11&#xff0c;则输出&#xff1a; 无标题.png 输入说明 : 输入一个正整数n&#xff08;n<20)&#xff0c;表示需要输出n阶方阵。 输出说明 : 共输出n…

最短路径C语言

问题描述 现已知有N&#xff08;N<10&#xff09;个城市M(M<30)条路,保证每个城市之间有路&#xff0c;单向到达&#xff0c;每个城市之间的路程不一样&#xff0c;求任意两个城市之间的最短路程 样例输入 4 8 1 2 2 1 3 6 1 4 4 2 3 3 3 1 7 3 4 1 4 1 5 4 3 12 样例输出…

万能搜索中递归的理解以及四种走法枚举的理解

一开始在理解这个枚举的四种走法时&#xff0c;不知道递归加在这个函数中怎么运行的&#xff0c;也就是不知道递归的具体过程&#xff0c;和每次怎么行走的。经过一段时间的理解后现在可算有点眉目了。 首先递归的每次过程这个函数都会在从新运行一次&#xff0c;循环也是从头开…

[UWP]分享一个基于HSV色轮的调色板应用

原文:[UWP]分享一个基于HSV色轮的调色板应用1. 前言 上一篇文章介绍了HSV色轮&#xff0c;这次分享一个基于HSV色轮的调色板应用&#xff0c;应用地址&#xff1a;ColorfulBox - Microsoft Store 2. 功能 ColorfulBox是Adobe 色轮的简单模仿&#xff0c;只实现了最基本的功能&a…