haoge404407 发表于 2020-5-24 10:16:18

python解矩阵

【问题描述】编写一个程序,输入两个矩阵AN×N与BN×N(2<N<10)进行如下运算:

1.      加

2.      减

3.      乘

【输入形式】

标准输入上依次输入以下内容:

1.         输入第一个矩阵AN×N。形式是N个输入行,每行有分别N个整数(可能为负数),代表矩阵AN×N的所有元素。各整数之间以一个或多个空格分隔。

2.      输入运算符,是一个字符,可以是"+"、"-"、"*",分别代表加、减、乘三种操作。

3.      输入第二个矩阵BN×N。形式与AN×N相同。

4.      以空行表示所有输入的结束。

【输出形式】在标准输出上打印运算结果,同样是输出N行,每行分别输出该行的N个元素。每个整数占据5个字符宽度(包括负号),向右对齐,不足部分补以空格。

【样例输入】

(下图中"#"代表一个空格)

5##7#12

3###-15# 4

2#6#7

+

41#8#9

7#6#12

2#4#6

【样例输出】

###46###15###21

###10###-9###16

####4###10###13

【样例说明】输入的A和B分别是两个三阶矩阵,要求进行加法运算,结果如上例所示。

【运行时限】要求每次运行时间限制在5秒之内。超出该时间则认为程序错误。

Twilight6 发表于 2020-5-24 11:54:50

加法:
减法:
乘法:
AN = 1 ; BN = 1
AN_array = [] ; BN_array = []
while True:
    AN = input('')
    if AN == '':
      break
    AN_array.append()
operator = input('')
while True:
    BN = input('')
    if BN == '':
      break
    BN_array.append()

new_array = []
for i1 in range(len(AN_array)):
    temp = []
    for i2 in range(len(AN_array)):
      if operator == "+":
            temp.append('{:^5}'.format(int(AN_array)+int(BN_array)))
      if operator == "-":
            temp.append('{:^5}'.format(int(AN_array) - int(BN_array)))
      if operator == "*":
            temp.append('{:^5}'.format(int(AN_array) * int(BN_array)))
    new_array.append(''.join(temp))
for i in new_array:
    print(i)
页: [1]
查看完整版本: python解矩阵