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
广告