C++程序 查找矩阵的正常值和痕迹

C++程序 查找矩阵的正常值和痕迹

给定一个二维矩阵,任务是找出矩阵的正常值和痕迹。

正常值 是指矩阵元素的平方和的平方根。

对于一个n x n的方阵, 痕迹 是对角线元素的和。

示例:

输入: mat[][] = {{7, 8, 9},
{6, 1, 2},
{5, 4, 3}};
输出: 正常值=16
痕迹=11
说明: 正常值=sqrt(77+88+99+66+
11+22+55+44+3*3)
= 16
痕迹=7+1+3=11

输入: mat[][] = {{1, 2, 3},
{6, 4, 5},
{2, 1, 3}};
输出: 正常值=10
痕迹=8
说明: 正常值=sqrt(11+22+33+66+44+
5
5+22+11+3*3)
痕迹= 8(1+4+3)

C++程序 查找矩阵的正常值和痕迹

//C++程序查找给定矩阵的迹和正常值
#include<bits/stdc++.h>
using namespace std;
//给定矩阵的大小
const int MAX = 100;
//返回大小为n x n的矩阵的正常值
int findNormal(int mat[][MAX], int n)
{
    int sum = 0;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            sum += mat[i][j] * mat[i][j];
    return sqrt(sum);
}
//返回大小为n x n的矩阵的迹
int findTrace(int mat[][MAX], int n)
{
    int sum = 0;
    for (int i = 0; i < n; i++)
        sum += mat[i][i];
    return sum;
}
//驱动程序
int main()
{
    int mat[][MAX] = {{1, 1, 1, 1, 1},
        {2, 2, 2, 2, 2},
        {3, 3, 3, 3, 3},
        {4, 4, 4, 4, 4},
        {5, 5, 5, 5, 5}};
    cout << "矩阵的迹= " << 
        findTrace(mat, 5) << endl;
    cout << "矩阵的正常值= " << 
        findNormal(mat, 5) << endl;
    return 0;
}  

输出 :

矩阵的迹=15
矩阵的正常值=16

时间复杂度: O(n*n)

空间复杂度: O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例