天天看點

【華為OD機試真題 python】九宮格【2023 Q1 | 200分】

■ 題目描述

【九宮格】

九宮格是一款廣為流傳的遊戲,起源于河圖洛書。

遊戲規則是:1到9九個數字放在3×3的格子中,要求每行、每列以及兩個對角線上的三數之和都等于15.

在金麻名著《射雕英雄傳》中黃蓉曾給九宮格的一種解法,口訣:戴九恩一,左三右七,二四有肩,八六為足,五居中央。

解法如圖所示

現在有一種新的玩法,給九個不同的數字,将這九個數字放在3×3的格子中,要求每行、每列以及兩個對角線上的三數之積相等(三階積幻方)。其中一個三階幻方如圖:

解釋:每行、每列以及兩個對角線上的三數之積相等,都為216。請設計一種算法,将給定的九個數宇重新排列後,使其滿足三階積幻方的要求。

排列後的九個數宇中:第1-3個數字為方格的第一行,第4-6個數宇為方格的第二行,第7-9個數字為方格的第三行。

輸入描述

九個不同的數宇,每個數字之間用空格分開。

0<數字<10^7。0<排列後滿足要求的每行、每列以及兩個對角線上的三數之積 < 2^31-1。

輸出描述

九個數宇所有滿足要求的排列,每個數字之間用空格分開。每行輸出一個滿足要求的排列。

要求輸出的排列升序排序,即:對于排列A (A1.A2.A3…A9)和排列B(B1,B2,B3…B9),從排列的第1個數字開始,遇到Ai<Bi,則排列

A<排