题目描述:

如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。

输入:

  1、第一个矩阵的行数
  2、第一个矩阵的列数(也是第二个矩阵的行数)
  3、第二个矩阵的列数
  4、第一个矩阵的值
  5、第二个矩阵的值

输出:

  输出两个矩阵相乘的结果

样例输入

  2 2 2 3 8 8 0 9 0 18 9

样例输出

  171 72

  72  0

思路:

题目意思很简单,只是实现两个矩阵乘法功能,要注意的一点是输出的格式。

OJ平台中对输出的格式非常严格,经过多次尝试,验证此题的正确输出格式是:
  输出应该是x行,z列的格式
  每一行中各列之间应用空格键隔开,不能用Tab键
  最后一行的末尾不能换行

 import java.util.Scanner;

 /**
* 实现两个矩阵的乘法的功能,并输出结果
*
*/
public class MultipleMatrix { public static void main(String[] args) {
/*
* 输入数据,按照输入的格式对应输入
* 1、第一个矩阵的行数
* 2、第一个矩阵的列数(也是第二个矩阵的行数)
* 3、第二个矩阵的列数
* 4、第一个矩阵的值
* 5、第二个矩阵的值
*/
Scanner cin = new Scanner(System.in) ;
int x = cin.nextInt() ;
int y = cin.nextInt() ;
int z = cin.nextInt() ;
//简单判断是否出错
if(x < 1 || y <1 || z < 1){
cin.close() ;
return ;
} int [][] fstMtr = new int [x][y] ;
int [][] sndMtr = new int [y][z] ;
//输入第一个矩阵A[x][y]
for(int i = 0 ; i < x ; i++){
for(int j = 0 ; j < y ; j++){
fstMtr[i][j] = cin.nextInt() ;
}
}
//输入第一个矩阵B[Y][Z]
for(int i = 0 ; i < y ; i++){
for(int j = 0 ; j < z ; j++){
sndMtr[i][j] = cin.nextInt() ;
}
}
cin.close() ; int [][] result = new int[x][z] ;
//计算结果,按照矩阵相乘的公式进行计算
for(int i = 0 ; i < x ; i++){
for(int j = 0 ; j < z ; j++){
result[i][j] = 0 ;
for(int k = 0 ; k < y ; k++){
result[i][j] += fstMtr[i][k]*sndMtr[k][j] ;
}
/*
* 输出结果,OJ平台中对输出的格式非常严格,
经过多次尝试,验证:
* 此题的正确输出格式应该是x行,z列的格式
* 一行中各列之间应用空格键隔开,不能用Tab键
* 最后一行的末尾不能换行
*/
if(j == z-1){
if(i == x-1){
System.out.print(result[i][j]);
}else{
System.out.println(result[i][j]);
}
}else{
System.out.print(result[i][j]+" ");
}
}
} } }

Code

华为OJ平台——矩阵乘法的更多相关文章

  1. 华为OJ平台——字符串分隔

    题目描述: 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组: 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 输入 连续输入字符串(输入两次,每个字符长长度小于100)输 ...

  2. 华为OJ平台——输出最小的k个数

    输入n个整数,输出其中最小的k个. 详细描述: 接口说明 原型: bool GetMinK(unsignedint uiInputNum, int *pInputArray, unsignedint ...

  3. 【华为OJ平台练习题】求最大公共子串的个数和元素

    1.原题是求出最大公共子串的个数就可以 原理:利用二维矩阵排列的方式.将俩字符串进行比較 #include <iostream> #include <vector> using ...

  4. 华为OJ平台——密码强度等级

    题目描述: 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二.字母: 0  ...

  5. 华为OJ平台——求最大连续bit数

    题目描述: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 输入: 一个byte型的数字    输出: 对应的二进制数字中1的最大连续数 思路: ...

  6. 华为OJ平台——统计字符串中的大写字母

    题目描述: 统计字符串中的大写字母的个数 输入: 一行字符串 输出: 字符串中大写字母的个数(当空串时输出0) 思路: 这一题很简单,直接判断字符串中的每一个字符即可,唯一要注意的一点是输入的字符串可 ...

  7. 华为OJ平台——将真分数分解为埃及分数

    题目描述: 分子为1的分数称为埃及分数.现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数.如:8/11 = 1/2+1/5+1/55+1/110. 输入: 输入一个真分数, ...

  8. 华为OJ平台——字符串匹配

    题目描述: 判断短字符串中的所有字符是否在长字符串中全部出现 输入: 输入两个字符串. 第一个为短字符,第二个为长字符 输出: true  - 表示短字符串中所有字符均在长字符串中出现 false - ...

  9. 华为OJ平台——整形数组合并

    题目描述: 将两个整型数组按照升序合并,并且过滤掉重复数组元素 输入: 输入说明,按下列顺序输入: 1 输入第一个数组的个数 2 输入第一个数组的数值 3 输入第二个数组的个数 4 输入第二个数组的数 ...

随机推荐

  1. js延迟加载,提升网页加载速度

    JS延迟加载,简单例子,不多说: 代码如下: 程序代码 <script language="JavaScript" src="" id="my& ...

  2. linux网络不同的解决办法

    贯标防火墙,iptables 注释掉/etc/hosts的localhost的ipv6地址映射

  3. PC-Lint安装配置与集成到VS2010

    第一篇 PC-lint 9 安装及配置教程 1.从这里下载PC-lint.9.0e.rar,解压缩(目录中的patch文件夹不用,因为它只能将PC-lint升级到9.0e ) 2.点击pclint9s ...

  4. Intellij IDEA 使用Spring-boot-devTools无效解决办法

    相信大部分使用Intellij的同学都会遇到这个问题,即使项目使用了spring-boot-devtools,修改了类或者html.js等,idea还是不会自动重启,非要手动去make一下或者重启, ...

  5. [Flex] ButtonBar系列——flex3 ButtonBar各项之间的间距调整

    <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="h ...

  6. java -d64

    在 resin启动时指定java时加上了 -d64选项 JAVA="/xx/java -d64" 选择 "-server"选项必须使用-d64 http://b ...

  7. testng.xml创建及解析

    项目右键---TestNG -----> Convert to TestNG 会自动产生一个testng.xml的文件 http://www.cnblogs.com/choosewang/art ...

  8. Java SE 第二十一讲----抽象类

    1.抽象类(abstract class):使用了abstract关键字修饰的类叫做抽象类,抽象类无法实例化,也就是说,不能new出来一个抽象类的对象. 2.抽象方法(abstract method) ...

  9. C#中修改Dll文件 (反编译后重新编译)

    Dll文件生成后,如没有源代码,又要修改其中内容 可以用微软自带的ildasm和ilasm程序 先用ildasm将dll文件反编译成il文件 ildasm Test.dll /out=Test.il  ...

  10. OpenGL ES 着色语言

    OpenGL 着色器中使用的是着色语言GLSL.着色语言源自C语言,提供了丰富的原生类型,如向量.矩阵等,还有大量的内建函数,这在处理3D图形时可以更加高效.易用.下面是整理的是OpenGL ES2. ...