使用python计算方阵对角线之和之间的绝对差(HackerRank)

    技术2022-07-17  60

    思路:

    随机生成一个n阶方阵;计算方阵两对角线各数之和;最后求两数差的绝对值。 import random import numpy as np min_size = 3 # n的最小值 max_size = 10 # n的最大值 n = random.randint(min_size,max_size+1) mat = [] # 随机生成 n 阶方阵 def createArr(n): for i in range(0,n+1): arr = [] for j in range(0,n+1): # 在(-100,100)的区间中随机选取一个数插入方阵中 arr.append(random.randint(-100,100)) mat.append(arr) # 打印输出方阵 def printArr(mat): size = np.shape(mat)[0] print("n = {}".format(size)) print("------"*size+"--") for i in range(0,size): arr = mat[i] print("|",end="") for j in range(0,size): print('%-6d'%arr[j],end="") print("|") print("------"*size+"--") # 计算方阵对角线之和之间的绝对差 def result(mat): left_arr_sum = 0 right_arr_sum = 0 size = np.shape(mat)[0] for n in range(0,size): left_arr_sum = left_arr_sum + mat[n][n] right_arr_sum = right_arr_sum + mat[n][size-1-n] result_num = abs(left_arr_sum - right_arr_sum) print("该方阵对角线之和之间的绝对差为:{}".format(result_num)) createArr(n) printArr(mat) result(mat)
    Processed: 0.017, SQL: 9