第十周实验(后两个题目)

这周实验不难,我就不花过多时间解析了,大家看看题目,如果有问题可以私聊我,应该没有大问题,有思路错误,看一下答案也就能理解了 

4.输入一个矩阵,矩阵通过键盘输入,(每行中的数据用逗号分隔,行之间用空格分隔)。编写程序计算所有元素之和,主对角线元素。

提示:参考下面题目中输入矩阵方法:

 

def f(a):          #参数a是表示矩阵的列表对象

   r=len(a)         #获得原矩阵的行数

   c=len(a[0])      #获得原矩阵的列数  

   b=[]             #用列表保存转置矩阵

   for n in range(c):   #初始化转置矩阵

      b.append([0]*r)

   for i in range(r):  #完成矩阵转置

      for j in range(c):

         b[j][i]=a[i][j]  

   return b

a=input('请输入原矩阵:')

a=a.split(' ')     #按空格分解为列表,先分解出每行的数据

for n in range(len(a)): #分解行中的每列的数据

   a[n]=a[n].split(',')

print('原矩阵:')

for r in a:             #遍历行

   for c in r:          #遍历行中的元素

      print('%-4s'%c,end='')#每个数据占4列,左对齐,不换行

   print()                 #每行输出之后换行

b=f(a)

print('转置矩阵:')

for r in b:

   for c in r:

      print('%-4s'%c,end='')

   print()

 

 答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/5 10:49
def f(a):  # 参数a是表示矩阵的列表对象
    r = len(a)  # 获得原矩阵的行数
    b = 0  # 用列表保存转置矩阵
    for i in range(r):  # 完成矩阵转置
        b += sum(a[i])
    return b


a = input('请输入原矩阵:')
a = a.split(' ')  # 按空格分解为列表,先分解出每行的数据
for n in range(len(a)):  # 分解行中的每列的数据
    a[n] = list(map(int, a[n].split(',')))
print('原矩阵:')
for r in a:  # 遍历行
    for c in r:  # 遍历行中的元素
        print('%-4s' % c, end='')  # 每个数据占4列,左对齐,不换行
    print()  # 每行输出之后换行
b = f(a)
if len(a) == len(a[0]):
    print("主对角线为:", end='')
    for i in range(len(a)):
        print(a[i][i], end=' ')
    print()
else:
    print("没有主对角线")
print("矩阵和为:%s" % b)

5.定义函数,f()输出n阶杨辉三角运行示例如下:

示例运行结果如下。

请输入正整数n:7

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

答案:
 

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/5 11:25
def yanghui(n, lis: list):
    for i in range(n):
        lis1 = [1]
        lis.append(lis1)
        if i == 0:
            continue
        last = lis[i - 1]
        for j in range(i - 1):
            lis1.append(last[j] + last[j + 1])
        for q in lis1:
            print(q, end=' ')
        else:
            print('1')
            lis1.append(1)
        lis[i] = lis1


n = int(input("请输入正整数n:"))
lis = []
yanghui(n, lis)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值