你最好的朋友開始收集拼圖,想要為自己的收藏建立一份詳細的目錄,記錄總片數、列數與行數、邊框拼圖與內部拼圖的數量、長寬比,以及拼圖的格式等資訊。 就算你們兩人聯手,光是拼完一幅 1000 片的拼圖就要花上好幾個小時,而且之後還得手動數出列數和行數,並算出剩下的數字。 那些片數多達數千片、規模更大的拼圖,現在看起來真是令人卻步。 「一定有更好的方法!」你這麼喊道,然後坐到電腦前,開始解決這個問題。
給定拼圖的部分資訊,補上缺少的拼塊。
如果資訊不足以補齊所有細節,或是提供的部分彼此矛盾,就應該通知使用者。
拼圖的完整資訊包含以下部分:
pieces:拼塊總數border:邊框拼塊的數量inside:內部(非邊框)拼塊的數量rows:列數columns:欄數aspectRatio:欄與列的長寬比format:拼圖格式,可以是 portrait、square 或 landscape
在這個練習中,你可以假設每個拼塊都是正方形,因此格式可以由長寬比推導出來:
portrait
square
landscape
一個直向拼圖,共有 6 個拼塊,全都是邊框拼塊,沒有內部拼塊。 它有 2 欄、3 列。 長寬比是 0.666666...(2/3)。
一個正方形拼圖,共有 9 個拼塊,除了正中央那一個是內部拼塊之外,其餘全都是邊框拼塊。 它有 3 欄、3 列。 長寬比是 1.0(3/3)。
一個橫向拼圖,共有 12 個拼塊,其中 10 個是邊框拼塊,2 個是內部拼塊。 它有 4 欄、3 列。 長寬比是 1.333333...(4/3)。