public static string GetAnswer(string input) { var strDet = MatrixDetSolver.GetAns(input); var det = long.Parse(strDet); var m = MatrixDetSolver.GetArrayFromTheString(input); if (det == 0) { return("unsolvable"); } decimal[][] inv = MatrixInverse(m); var dimensionMatrix = inv.Length; var answer = new StringBuilder(); for (int i = 0; i < inv.Length; i++) { for (int j = 0; j < inv.Length; j++) { if (j != dimensionMatrix - 1) { answer.Append(inv[i][j].ToString(CultureInfo.InvariantCulture) + " & "); } else if (dimensionMatrix - 1 != i) { answer.Append(inv[i][j].ToString(CultureInfo.InvariantCulture) + " \\\\ "); } else { answer.Append(inv[i][j].ToString(CultureInfo.InvariantCulture)); } } } return(answer.ToString()); }
public static string GetAnswer(string input) { /* * input: * 40 & -8 \\ -100 & 20 * answer: * unsolvable * * * стоит еще потестить когда нормальный ответ * //*/ var strDet = MatrixDetSolver.GetAns(input); var det = long.Parse(strDet); var a = MatrixDetSolver.GetArrayFromTheString(input); if (det != 0) { return(TransposeMatrix(1.0M / det, a)); } return("unsolvable"); //*/ }