华为机试测试-矩阵乘法-循环

 1 import java.util.Scanner;
 2 public class Main{
 3       public static void main(String[] args){
 4           Scanner scanner=new Scanner(System.in);
 5           int row=scanner.nextInt();
 6           int len=scanner.nextInt();
 7           int column=scanner.nextInt();
 8           int [][] x1=new int[row][len];
 9           int [][] x2=new int[len][column];
10           for(int i=0;i<row;i++)
11           {
12               for(int j=0;j<len;j++)
13               {
14                   x1[i][j]=scanner.nextInt();
15               }
16           }
17           for(int i=0;i<len;i++)
18           {
19               for(int j=0;j<column;j++)
20               {
21                   x2[i][j]=scanner.nextInt();
22               }
23           }
24           int [][]d=matrixMultity(x1, x2);
25           for(int i=0;i<row;i++)
26           {
27               for(int j=0;j<column;j++)
28               {
29                   if(j==column-1)
30                       System.out.print(d[i][j]);
31                   else
32                       System.out.print(d[i][j]+" ");
33               }
34               System.out.println();
35           }
36           scanner.close();
37       }
38
39       /**
40        *
41        * @param x1
42        * @param x2
43        * @return
44        */
45       public static int [][] matrixMultity(int [][] x1,int[][] x2)
46       {
47           int row=x1.length,column=x2[0].length;
48           int len=x1[0].length;
49           int [][] d=new int[row][column];
50           for(int i=0;i<row;i++)
51           {
52               for(int j=0;j<column;j++)
53               {
54                   int sum=0;
55                   for(int k=0;k<len;k++)
56                   {
57                       sum+=x1[i][k]*x2[k][j];
58                   }
59                   d[i][j]=sum;
60               }
61           }
62           return d;
63       }
64 }
时间: 2024-10-16 05:44:11

华为机试测试-矩阵乘法-循环的相关文章

华为机试测试- 最小公倍数

import java.util.*; /*求最大公约数和最小公倍数*/ public class MaxCommonDivisorAndMinCommonMultiple { public static void main(String[] args) { Scanner scan = new Scanner(System.in);// 接收控制台输入的信息 System.out.print("请输入第一个整数:"); int num1 = scan.nextInt(); // 取出

华为机试测试- 求有序数组中最长的等差序列

原题目是求一个无序数组中最长的等差数列. 求随机数构成的数组中找到长度大于=3 的最长的等差数列, 输出等差数列由小到大:如果没有符合条件的就输出格式:输入[1,3,0,5,-1,6]输出[-1,1,3,5] 思路: 1.排序 2.d的取值范围是[0,max-min],共有max-min+1种情况 3.对每一种情况进行查找 4.对于公差d,要求最长的等差序列,需要两个循环,一个外循环从头到尾遍历,内循环从外循环的起始遍历点开始利用公式 arr[i]=arr[start]+len*d,假如符合就长

华为机试测试- 大数相加

方法一: 直接使用BigDecimal 方法二:字符串解析,注意stringBuilder.append(int x)这里的x最终会变成x字符串,而不是对应的char. 1 import java.math.BigDecimal; 2 import java.util.Scanner; 3 4 5 public class Main { 6 public static void main(String[] args) { 7 Scanner scanner=new Scanner(System.

华为机试测试- 字符串最长的数字串

输入 输入一个字符串. 输出 输出字符串中最长的数字字符串和它的长度. 如果数字字符串为空,则只输出0 如 input: dadfsaf  output:0 样例输入 abcd12345ed125ss123058789 样例输出 123058789,9 import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main { p

华为机试测试-

验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和. 例如: 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 1 import java.util.Scanner; 2 3 4 public class Main { 5 public static void main(String[] args) { 6 Scanner scanner=new Scanner(System.in); 7 int n=scanner.nextInt(); 8 S

华为机试测试- 质数因子

根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积. import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); Lo

华为机试测试-找偶数的相距最近的素数对

1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner scanner=new Scanner(System.in); 5 int n=scanner.nextInt(); 6 for(int i=n/2;i>=2;i--) 7 { 8 if(isSushu(i) && isSushu(n-i)) 9 { 10 System.out.pri

华为机试测试-分苹果-递归

import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int m=scanner.nextInt(); int n=scanner.nextInt(); System.out.println(sharingApple(m, n)); scanner.close(); } public static in

华为机试测试-dna-字符串

一个DNA序列由A/C/G/T四个字母的排列组合组成.G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度).在基因工程中,这个比例非常重要.因为高的GC-Ratio可能是基因的起始点. 给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列. 输入 输入一个string型基因序列,和int型子串的长度 输出 找出GC比例最高的字串 样例输入 AACTGTGCACGACCTGA 5 样例输