Advertisement
asdad24

Untitled

Mar 29th, 2020
503
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.08 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             int N = int.Parse(Console.ReadLine());
  13.             double[,] a = new double[N, N + 1];
  14.  
  15.             for (int i = 0; i < N; i++)
  16.             {
  17.                 for (int j = 0; j < N + 1; j++)
  18.                 {
  19.                     a[i, j] = double.Parse(Console.ReadLine());
  20.                 }
  21.             }
  22.  
  23.             for (int i = 0; i < N; i++)
  24.             {
  25.                 if (a[i, i] == 0)
  26.                 {
  27.                     for (int j = i + 1; j < N; j++)
  28.                     {
  29.                         if (a[j, i] != 0)
  30.                         {
  31.                             for (int k = 0; k < N + 1; k++)
  32.                             {
  33.                                 a[i, k] += a[j, k] / a[j, i];
  34.                             }
  35.                             break;
  36.                         }
  37.                     }
  38.                 }
  39.                 else
  40.                 {
  41.                     double x = a[i, i];
  42.                     for (int j = 0; j < N + 1; j++)
  43.                     {
  44.                         a[i, j] /= x;
  45.                     }
  46.                 }
  47.  
  48.                 for (int j = i + 1; j < N; j++)
  49.                 {
  50.                     double x = a[j, i];
  51.                     for (int k = 0; k < N + 1; k++)
  52.                     {
  53.                         a[j, k] -= x * a[i, k];
  54.                     }
  55.                 }
  56.             }
  57.  
  58.             double[] ans = new double[N];
  59.             for (int i = N - 1; i >= 0; i--)
  60.             {
  61.                 ans[i] = a[i, N];
  62.  
  63.                 for (int j = 0; j < i; j++)
  64.                 {
  65.                     a[j, N] -= a[j, i] * ans[i];
  66.                     a[j, i] = 0;
  67.                 }
  68.             }
  69.  
  70.             for (int i = 0; i < N; i++)
  71.             {
  72.                 Console.Write(ans[i].ToString() + " ");
  73.             }
  74.             Console.WriteLine();
  75.         }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement