fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Ideone
  6. {
  7. public static void main (String[] args)
  8. {
  9. int m,n;
  10. Scanner sc = new Scanner(System.in);
  11. m = sc.nextInt();
  12. n = sc.nextInt();
  13. int[][] A = new int[m][m]; //массив для хранения исходной матрицы
  14. int[][] B = new int[m][m]; //массив для хранения степеней исходной матрицы
  15. int[][] C = new int[m][m]; //массив для хранения произведений A на B при возведении в степень
  16. for(int i=0;i<m;i++)
  17. {
  18. for(int j=0;j<m;j++)
  19. {
  20. A[i][j] = sc.nextInt();
  21. B[i][j]=A[i][j];
  22. }
  23. }
  24. int sum=0;
  25. int result=0;
  26. if(n>0)
  27. {
  28. for(int i=0;i<m;i++)
  29. {
  30. result+=B[i][i]; //нахождение следа исходной матрицы
  31. }
  32. System.out.printf("%d ",result);
  33. }
  34. for(int q=0;q<n-1;q++)
  35. {
  36. for(int i=0;i<m;i++) //перемножение матриц
  37. {
  38. for(int z=0;z<m;z++)
  39. {
  40. for(int j=0;j<m;j++)
  41. {
  42. sum+=A[i][j]*B[j][z];
  43. }
  44. C[i][z]=sum;
  45. sum=0;
  46. }
  47. }
  48. for(int i=0;i<m;i++) //переприсваивание элементов матрицы
  49. {
  50. for(int j=0;j<m;j++)
  51. {
  52. B[i][j]=C[i][j];
  53. }
  54. }
  55. result=0;
  56. for(int i=0;i<m;i++)
  57. {
  58. result+=B[i][i]; //нахождение следа полученной матрицы
  59. }
  60. System.out.printf("%d ",result);
  61. }
  62. }
  63. }
Success #stdin #stdout 0.16s 321344KB
stdin
2 5
1 2
3 4
stdout
5 29 155 833 4475