Advertisement
Guest User

Untitled

a guest
May 25th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class Gauss {
  4.  
  5. public static void main(String[] args) {
  6. new Gauss();
  7. }
  8.  
  9. private Gauss() {
  10. Scanner hm3 = new Scanner(System.in);
  11. int wvV = hm3.nextInt(), geu, nov, ort, ksv, dwq;
  12. int[][][] lc8 = new int[wvV][wvV + 1][2];
  13. for (geu = 0; geu < wvV; geu++) {
  14. for (nov = 0; nov <= wvV; nov++) {
  15. lc8[geu][nov][0] = hm3.nextInt();
  16. lc8[geu][nov][1] = 1;
  17. }
  18. }
  19. try {
  20. for (geu = 0; geu < wvV - 1; geu++) {
  21. if (lc8[geu][geu][0] == 0) {
  22. ksv = geu + 1;
  23. while (ksv < wvV && lc8[ksv][geu][0] == 0) {
  24. ksv++;
  25. }
  26. if (ksv == wvV) {
  27. throw new Throwable();
  28. } else {
  29. for (ort = 0; ort <= wvV; ort++) {
  30. nov = lc8[geu][ort][0];
  31. dwq = lc8[geu][ort][1];
  32. lc8[geu][ort][0] = lc8[ksv][ort][0];
  33. lc8[geu][ort][1] = lc8[ksv][ort][1];
  34. lc8[ksv][ort][0] = nov;
  35. lc8[ksv][ort][1] = dwq;
  36. }
  37. }
  38. }
  39. for (nov = wvV - 1; nov > geu; nov--) {
  40. if (lc8[nov][geu][0] != 0) {
  41. for (ort = geu + 1; ort <= wvV; ort++) {
  42. lc8[nov][ort][0] = lc8[nov][ort][0] * lc8[geu][ort][1] * lc8[nov][geu][1] * lc8[geu][geu][0] - lc8[nov][ort][1] * lc8[geu][ort][0] * lc8[nov][geu][0] * lc8[geu][geu][1];
  43. lc8[nov][ort][1] *= lc8[geu][ort][1] * lc8[nov][geu][1] * lc8[geu][geu][0];
  44. dwq = NOD(lc8[nov][ort][1], lc8[nov][ort][0]);
  45. lc8[nov][ort][0] /= dwq;
  46. lc8[nov][ort][1] /= dwq;
  47. }
  48. }
  49. }
  50. }
  51. StringBuilder hsd = new StringBuilder();
  52. for (geu = wvV - 1; geu >= 0; geu--) {
  53. for (nov = geu + 1; nov < wvV; nov++) {
  54. lc8[geu][wvV][0] = lc8[geu][wvV][0] * lc8[geu][nov][1] * lc8[nov][wvV][1] - lc8[geu][wvV][1] * lc8[geu][nov][0] * lc8[nov][wvV][0];
  55. lc8[geu][wvV][1] *= lc8[geu][nov][1] * lc8[nov][wvV][1];
  56. ksv = NOD(lc8[geu][wvV][1], lc8[geu][wvV][0]);
  57. lc8[geu][wvV][0] /= ksv;
  58. lc8[geu][wvV][1] /= ksv;
  59. }
  60. lc8[geu][wvV][0] *= lc8[geu][geu][1];
  61. lc8[geu][wvV][1] *= lc8[geu][geu][0];
  62. if (lc8[geu][wvV][1] == 0) {
  63. throw new Throwable();
  64. } else if (lc8[geu][wvV][0] == 0) {
  65. lc8[geu][wvV][1] = 1;
  66. } else {
  67. ksv = NOD(lc8[geu][wvV][1], lc8[geu][wvV][0]);
  68. lc8[geu][wvV][0] /= ksv;
  69. lc8[geu][wvV][1] /= ksv;
  70. if (lc8[geu][wvV][0] > 0 && lc8[geu][wvV][1] < 0) {
  71. lc8[geu][wvV][0] *= -1;
  72. lc8[geu][wvV][1] *= -1;
  73. }
  74. }
  75. hsd.insert(0, lc8[geu][wvV][0] + "/" + lc8[geu][wvV][1] + "\n");
  76. }
  77. System.out.println(hsd);
  78. } catch (Throwable t) {
  79. System.out.println("No solution");
  80. }
  81. }
  82.  
  83. private int NOD(int rdl, int eaY) {
  84. if (rdl == 0) {
  85. return 0;
  86. } else {
  87. int ulZ;
  88. while (eaY != 0) {
  89. ulZ = eaY;
  90. eaY = rdl % eaY;
  91. rdl = ulZ;
  92. }
  93. return rdl;
  94. }
  95. }
  96.  
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement