Advertisement
Guest User

Untitled

a guest
Apr 19th, 2020
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. // 2020/4/18(土)
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Gyoretsu3 {
  6. public static void main(String[] args) {
  7. Scanner scanner = new Scanner(System.in);
  8. System.out.println("2つの行列の積を求めます");
  9. System.out.println("1つめの行列の大きさ(行)を入力して下さい");
  10. int A_line = scanner.nextInt();
  11. System.out.println("1つめの行列の大きさ(列)を入力して下さい");
  12. int A_row = scanner.nextInt();
  13. System.out.println("2つめの行列の大きさ(行)を入力して下さい");
  14. int B_line = scanner.nextInt();
  15. System.out.println("2つめの行列の大きさ(列)を入力して下さい");
  16. int B_row = scanner.nextInt();
  17. if (A_row != B_line) {
  18. System.out.println("この2つの行列は(少なくともこの順では)積が求められません 終了します");
  19. return;
  20. }
  21.  
  22. double[][] A = new double[A_line][A_row];
  23. double[][] B = new double[B_line][B_row];
  24. double[][] P = new double[A_line][B_row];
  25. for (int i = 0; i < A_line; i++) {
  26. for (int j = 0; j < A_row; j++) {
  27. System.out.println("1つめの行列の" + (i + 1) + "行" + (j + 1) + "列の要素の値を入力して下さい(小数可)");
  28. A[i][j] = scanner.nextDouble();
  29. }
  30. }
  31. for (int i = 0; i < B_line; i++) {
  32. for (int j = 0; j < B_row; j++) {
  33. System.out.println("2つめの行列の" + (i + 1) + "行" + (j + 1) + "列の要素の値を入力して下さい(小数可)");
  34. B[i][j] = scanner.nextDouble();
  35. }
  36. }
  37. for (int i = 0; i < A_line; i++) {
  38. for (int j = 0; j < B_row; j++) {
  39. for (int k = 0; k < A_row /* B_lineでも同じ */ ; k++) {
  40. P[i][j] += A[i][k] * B[k][j];
  41. }
  42. System.out.println("求める積を表す行列の" + (i + 1) + "行" + (j + 1) + "列の要素の値は、" + P[i][j] + "です");
  43. }
  44. }
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement