Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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