矩阵n次冥
2014-03-08 10:44
411 查看
/*问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数 接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值 输出格式 输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开 样例输入 2 2 1 2 3 4 样例输出 7 10 15 22*/ import java.util.*; public class Main6 { public static int N, M; public static int[][] array, result, tmp; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nextInt(); array = new int ; tmp = new int ; // 初始化 for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { array[i][j] = sc.nextInt(); tmp[i][j] = array[i][j]; } } // 矩阵的一次方等于本身 if (M == 1) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { System.out.print(tmp[i][j] + " "); } System.out.println(); } return; } // 0次方等于单位矩阵 if (M == 0) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (i == j) { System.out.print(1 + " "); } else System.out.print(0 + " "); } System.out.println(); } return; } // 计算矩阵乘法 for (int m = 0; m < M - 1; m++) { result = new int ; // 矩阵乘法 for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { for (int n = 0; n < N; n++) { result[i][j] += tmp[i] * array [j]; } } } // 记录矩阵地i-1次方的值 for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { tmp[i][j] = result[i][j]; } } } // 打印矩阵 for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { System.out.print(result[i][j] + " "); } System.out.println(); } } }
相关文章推荐
- 通过codehaus来实现json写入文件和读取文件成json对象
- @include与jsp:include的区别
- poj 1671 DP
- ubuntu wiznote 无法显示内容 只有标题
- [NOI2005]维修数列
- 上班语录 2014-02-25
- 上班语录 2014-02-26
- windows使用git时出现:warning: LF will be replaced by CRLF
- 上班语录 2014-02-24
- java 四舍五入保留小数点后两位
- C++第2周(春)项目3 文件+结构体实现实用系统
- dijkstra与prim的初感
- hdu 2425 Hiking Trip
- Android五大布局详解
- 简明vim练级攻略
- getRequestDispatcher()与sendRedirect()的区别
- 冒泡排序和选择排序
- 从C源代码到可执行文件的总体过程框架
- 向文件尾插入内容
- hibernate--HQL语法与详细解释