# 다음과 같은 연립일차방정식에 대해 확대행렬을 a로 정의하고 초기화
# 2x₁ + 3x₂ + 5x₃ = 7
# 4x₁ + 5x₂ + 6x₃ = 6
# 8x₁ + 7x₂ + 8x₃ = 5
a = [[2,3,5,7],[4,5,6,6],[8,7,8,5]]
x = ["x\u2081","x\u2082","x\u2083"]
n = 3   # 행렬의 차수

# 연립일차방정식을 출력
print("연립일차방정식 : ")
for i in range(0,3):
    print(' ', a[i][0],x[0], " + ", a[i][1], x[1], " + ", a[i][2], x[2], " = ", a[i][3], sep = '')

# 연립일차방정식을 행렬 형태로 출력
print()
print("연립일차방정식의 행렬 표현 : ")
print(" \u250c                   \u2510")
for i in range(0,3):
  print(" |", end = "")
  for j in range(0,3):
    print("%3.f" % a[i][j], end = " ")
  print(" | ", a[i][3], " | ")
print(" \u2514                   \u2518")

# 연립일차방정식을 반복문으로 계산
for i in range(0,3):
  if a[i][i] == 0:  # 0으로 나누기 오류
    print("\nMathematical Error!\a\n\n")
    exit(0)
  for j in range(0,3):
    if i != j:
      ratio = a[j][i]/a[i][i]
      for k in range(0, 4):
        a[j][k] = a[j][k] - ratio*a[i][k]

for i in range(0,3):
  for j in range(3,4):
    a[i][j] = a[i][j] / a[i][i]

# 연립일차방정식의 해를 출력
print("\n 위의 연립일차방정식의 해:")
for i in range(0,3):
  for j in range(3,4):
    print(' ',x[i], ' = %3.3f   ' % a[i][j], end = "", sep='')
  print()
print()  
