C++ 中,矩阵中每个值为 0 或 n 的最大行列式


问题陈述

我们给定一个正整数 n,我们需要找到一个可以由 0 或 n 的组合形成且具有最大行列式的 3*3 矩阵。

示例

如果 n = 15,我们可以创建如下矩阵 −

{{15, 15, 0}{0, 15, 15}{15, 0, 0}}

对于任何元素为 0 或 n 的 3*3 矩阵,最大的可能行列式为 2 *(n)3。因此,答案是 −

2 * (15)3 = 6750

算法

对于任何元素为 0 或 n 的 3*3 矩阵,最大的可能行列式为 2 *(n)3

示例

下面我们来看一个示例 −

 实时演示

#include <bits/stdc++.h>
using namespace std;
int getMaxDeterminant(int n){
   return (2 * n * n * n);
}
void printMatrix(int n){
   for (int i = 0; i < 3; ++i) {
      for (int j = 0; j < 3; ++j) {
         if (i == 0 && j == 2) {
            printf("%-5d", 0);
         } else if (i == 1 && j == 0) {
            printf("%-5d", 0);
         } else if (i == 2 && j == 1) {
            printf("%-5d", 0);
         } else {
            printf("%-5d", n);
         }
      }
      printf("\n");
   }
}
int main() {
   int n = 15;
   cout << "Matrix is:\n";
   printMatrix(n);
   cout << "\nMaximum determinant = " << getMaxDeterminant(n) << endl;
   return 0;
}

输出

Matrix is:
15150
0 15 15
15 015
Maximum determinant = 6750

更新时间:31-Dec-2019

94 次浏览

开启你的 职业生涯

完成课程获得认证

立刻开始
广告