Advertisement
myloyo

5.3.15

Sep 28th, 2023 (edited)
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.38 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections.Specialized;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace myloyorrr
  9. {
  10.     internal class Program
  11.     {
  12.         static void In(int[,] a)
  13.         {
  14.             for (int i = 0; i < a.GetLength(0); i++)
  15.             {
  16.                 string[]s = Console.ReadLine().Split();
  17.  
  18.                 for (int j = 0; j < a.GetLength(1); j++)
  19.                 {
  20.                     a[i, j] = int.Parse(s[j]);
  21.                    
  22.                 }
  23.  
  24.             }
  25.         }
  26.         static void Out(int[,] a)
  27.         {
  28.             for (int i = 0; i < a.GetLength(0); i++)
  29.             {
  30.                 for (int j = 0; j < a.GetLength(1); j++)
  31.                 {
  32.                     Console.Write(a[i, j] + " ");
  33.                 }
  34.                 Console.WriteLine();
  35.             }
  36.         }
  37.  
  38.         static int det(int[,] a)
  39.         {
  40.             int ans = 0;
  41.             int k = 1;
  42.             if(a.GetLength(0) == 1)
  43.             {
  44.                 ans =  a[0, 0];
  45.             }
  46.             else if(a.GetLength(0) == 2)
  47.             {
  48.                 ans = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
  49.             }
  50.             else if(a.GetLength(0) >= 3)
  51.             {
  52.                 for(int j = 0; j < a.GetLength(1); j++)
  53.                 {
  54.                     int[,] b;
  55.                     b = new int[a.GetLength(0)-1, a.GetLength(0)-1];
  56.  
  57.                     for (int x = 1; x < a.GetLength(0); x++)
  58.                     {
  59.                         for (int y = 0; y < a.GetLength(1); y++)
  60.                         {
  61.                             if(y < j)
  62.                             {
  63.                                 b[x - 1, y] = a[x, y];
  64.                             }
  65.                             else if(y > j)
  66.                             {
  67.                                 b[x - 1, y-1] = a[x, y];
  68.                             }
  69.                         }
  70.                     }
  71.                     ans += k * a[0, j] * det(b);
  72.                     k *= (-1);
  73.                 }
  74.             }
  75.             return ans;
  76.         }
  77.        
  78.         static void Main()
  79.         {
  80.             int[,] a;
  81.             int n = int.Parse(Console.ReadLine());
  82.             a = new int[n, n];
  83.             In(a);
  84.             Console.WriteLine(det(a));
  85.             //Out(a);
  86.         }
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement