问题求解——嵌套列表

第1关 打印零矩阵

m = int(input()) #行数
n = int(input()) #列数
########## Begin ##########
L=[[0]*n for _ in range(0,m)]
# print(L)
for i in range(0,m):
    for j in range(0,n):
        print("%d\t" % L[i][j],end="")
    print("")
########## End ##########

第2关 计算负矩阵

import myMatrix             #myMatrix是自己定义的一个库
num = int(input())
A = myMatrix.getMatrix(num) #利用myMatrix库生成矩阵A
print('A=')
myMatrix.printMatrix(A)     #利用myMatrix库打印矩阵A
########## Begin ##########
r=len(A)
c=len(A[0])
B = myMatrix.getMatrix(num)
for i in range(0,r):
    for j in range(0,c):
        B[i][j]=-A[i][j]
########## End ##########
print('\nB=-A=')
myMatrix.printMatrix(B)     #利用myMatrix库打印矩阵B

第3关 矩阵相加

import myMatrix
num1 = int(input())
num2 = int(input())

A = myMatrix.getMatrix(num1)
print('A=')
myMatrix.printMatrix(A)

B = myMatrix.getMatrix(num2)
print('\nB=')
myMatrix.printMatrix(B)
########## Begin ##########

r=len(A)
c=len(A[0])
C = myMatrix.getMatrix(num2)
for i in range(0,r):
    for j in range(0,c):
        C[i][j]=A[i][j]+B[i][j]

########## End ##########
print('\nC=A+B=')
myMatrix.printMatrix(C) #打印矩阵C

第4关 判断单位矩阵

import myMatrix
num = int(input())
A = myMatrix.getMatrix(num)
print('A=')
myMatrix.printMatrix(A)
########## Begin ##########

r=len(A)
c=len(A[0])
flag=1
if r!=c:
    flag=0
for i in range(0,r):
    for j in range(0,c):
        if i==j and A[i][j]!=1:
            flag=0
        if i!=j and A[i][j]!=0:
            flag=0

########## End ##########
if flag == True:
    print('A是单位矩阵')
else:
    print('A不是单位矩阵')

第5关 杨辉三角

import myMatrix
n = int(input()) #杨辉三角总层数
########## Begin ##########
A=[[0]*n for _ in range(0,n)]
A[0][0]=1
for i in range(1,n):
    A[i][0]=1
for i in range(1,n):
    for j in range(1,n):
        A[i][j]=A[i-1][j]+A[i-1][j-1]

########## End ##########
myMatrix.printMatrix(A)          #打印矩阵A
print('-'*n*6)                   #打印分隔线
myMatrix.printMatrixAsYangHui(A) #打印杨辉三角

第6关 无人机地形导航数据处理

import myMatrix
num = int(input())
A = myMatrix.getMatrix(num)
print('A=')
myMatrix.printMatrix(A)
print('\n山峰坐标:')
########## Begin ##########

r=len(A)
c=len(A[0])

def check(x,y):
    if x-1<0 or x+1>=r or y-1<0 or y+1>=c:
        return 0
    if A[x-1][y]>A[x][y]:
        return 0
    if A[x+1][y]>A[x][y]:
        return 0
    if A[x][y-1]>A[x][y]:
        return 0
    if A[x][y+1]>A[x][y]:
        return 0
    
    return 1
for i in range(0,r):
    for j in range(0,c):
        if check(i,j):
            print("%d %d" % (i,j))
########## End ##########

第7关飞行炮弹空气阻力分析

import numpy as np
import myMatrix
########## Begin ##########
def fuc(S,v):
    C=0.1
    p=1.2
    return 0.5*C*p*S*v*v
#F=[[0]*5 for _ in range(0,5)]
F=myMatrix.getMatrix(13)
for i in range(0,4):
    for j in range(0,5):
        F[i][j]=round(fuc(0.005*(i+1),100*(j+1)))
########## End ##########
myMatrix.printMatrix(F)    #打印结果
myMatrix.drawMatrixIn3D(F) #绘制图形

第8关 幻方

import myMatrix
num = int(input())
A = myMatrix.getMatrix(num)
print('A=')
myMatrix.printMatrix(A)
########## Begin ##########

r=len(A)
c=len(A[0])
V=[0]*(r*c+1)
st=0
flag=1
for i in range(0,1):
    for j in range(0,c):
        st=st+A[i][j]

for i in range(0,r):
    now=0
    for j in range(0,c):
        now=now+A[i][j]
        V[A[i][j]]=1
    if now!=st:
        flag=0

for i in range(1,r*c+1):
    if V[i]==0:
        flag=0

for i in range(0,c):
    now=0
    for j in range(0,r):
        now=now+A[j][i]
    if now!=st:
        flag=0

now=0
for i in range(0,c):
    now=now+A[i][i]
if now!=st:
    flag=0

now=0
for i in range(0,c):
    now=now+A[i][c-i-1]
if now!=st:
    flag=0
########## End ##########
if flag == True:
    print('A是幻方')
else:
    print('A不是幻方')
posted @ 2026-11-03 09:06  qtanglani  阅读(18)  评论(0)    收藏  举报