鱼C论坛

 找回密码
 立即注册
查看: 975|回复: 1

[已解决]python解矩阵

[复制链接]
发表于 2020-5-24 10:16:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
【问题描述】编写一个程序,输入两个矩阵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秒之内。超出该时间则认为程序错误。

最佳答案
2020-5-24 11:54:50
加法: 加法.gif
减法: 减法.gif
乘法: 乘法.gif
AN = 1 ; BN = 1
AN_array = [] ; BN_array = []
while True:
    AN = input('')
    if AN == '':
        break
    AN_array.append([i for i in AN.split(' ') if i != ''])
operator = input('')
while True:
    BN = input('')
    if BN == '':
        break
    BN_array.append([i for i in BN.split(' ') if i != ''])

new_array = []
for i1 in range(len(AN_array)):
    temp = []
    for i2 in range(len(AN_array[i1])):
        if operator == "+":
            temp.append('{:^5}'.format(int(AN_array[i1][i2])+int(BN_array[i1][i2])))
        if operator == "-":
            temp.append('{:^5}'.format(int(AN_array[i1][i2]) - int(BN_array[i1][i2])))
        if operator == "*":
            temp.append('{:^5}'.format(int(AN_array[i1][i2]) * int(BN_array[i1][i2])))
    new_array.append(''.join(temp))
for i in new_array:
    print(i)

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-24 11:54:50 | 显示全部楼层    本楼为最佳答案   
加法: 加法.gif
减法: 减法.gif
乘法: 乘法.gif
AN = 1 ; BN = 1
AN_array = [] ; BN_array = []
while True:
    AN = input('')
    if AN == '':
        break
    AN_array.append([i for i in AN.split(' ') if i != ''])
operator = input('')
while True:
    BN = input('')
    if BN == '':
        break
    BN_array.append([i for i in BN.split(' ') if i != ''])

new_array = []
for i1 in range(len(AN_array)):
    temp = []
    for i2 in range(len(AN_array[i1])):
        if operator == "+":
            temp.append('{:^5}'.format(int(AN_array[i1][i2])+int(BN_array[i1][i2])))
        if operator == "-":
            temp.append('{:^5}'.format(int(AN_array[i1][i2]) - int(BN_array[i1][i2])))
        if operator == "*":
            temp.append('{:^5}'.format(int(AN_array[i1][i2]) * int(BN_array[i1][i2])))
    new_array.append(''.join(temp))
for i in new_array:
    print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 19:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表