สมมติว่าเรามีเมทริกซ์กำลังสอง เราต้องหาผลบวกของเส้นทแยงมุมของเมทริกซ์ ดังนั้นให้รวมเฉพาะผลรวมขององค์ประกอบทั้งหมดบนเส้นทแยงหลักและองค์ประกอบทั้งหมดบนเส้นทแยงมุมรอง และละเว้นองค์ประกอบที่ตัดขวาง
ดังนั้นหากอินพุตเป็นแบบ
10 | 5 | 9 | 6 |
8 | 15 | 3 | 2 |
3 | 8 | 12 | 3 |
2 | 11 | 7 | 3 |
จากนั้นผลลัพธ์จะเป็น องค์ประกอบในแนวทแยงหลักคือ [10,15,12,3] ผลรวมคือ 40 เส้นทแยงมุมรอง [6,3,8,2] ผลรวมคือ 19 ดังนั้นผลรวมทั้งหมด 59
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
m :=จำนวนแถวของเมทริกซ์
-
ถ้า m เท่ากับ 1 แล้ว
-
ส่งคืนเมทริกซ์[0, 0]
-
-
นับ :=0
-
สำหรับฉันในช่วง 0 ถึง m - 1 ทำ
-
นับ :=นับ + เมทริกซ์[i, i]
-
นับ :=นับ + เมทริกซ์[i, (-1 - i)]
-
-
ถ้า m เป็นคี่ แล้ว
-
ind :=ผลหารของ m/2
-
นับ :=นับ - เมทริกซ์[ind, ind]
-
-
จำนวนคืน
ตัวอย่าง (Python)
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(matrix): m = len(matrix) if m == 1: return matrix[0][0] count = 0 for i in range(m): count += matrix[i][i] count += matrix[i][-1 - i] if m % 2 == 1: count -= matrix[m // 2][m // 2] return count matrix = [[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3],] print(solve(matrix))
อินพุต
[[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3]]
ผลลัพธ์
59