最大連續乘積

最大連續乘積

中等

簡介

你為一個政府機構工作,這個機構攔截到一群銀行搶匪之間一連串加密的通訊訊號。 這些訊號裡包含一長串數字。 你的團隊需要用各種數位訊號處理技術來分析這些訊號,找出任何可能顯示他們正在策劃搶案的模式。

說明

你的任務,是在加密訊號中那串長長的數字裡找出規律。

這裡你要用的技巧叫做「最大數列乘積」。

我們先來定義幾個名詞吧。

  • 輸入:你需要分析的一串數字
  • 數列:輸入中一段相鄰的數字(也就是彼此緊挨著的數字)
  • 跨度:每個數列有多長,也就是幾個數字
  • 乘積:把數字相乘之後得到的結果

我們用輸入"63915"來實際跑一個例子。

  • 要形成一個數列,就從原始輸入中取相鄰的數字。
  • 如果你處理的跨度是3,就會有三個可能的數列:
    • "639"
    • "391"
    • "915"
  • 接著我們要計算每個數列的乘積:
    • 數列"639"的乘積是 162(6 × 3 × 9 = 162)
    • 數列"391"的乘積是 27(3 × 9 × 1 = 27)
    • 數列"915"的乘積是 45(9 × 1 × 5 = 45)
  • 162 比 27 和 45 都大,所以"63915"的最大數列乘積來自數列"639"。 因此答案是 162。
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Lisp Flavoured Erlang Exercism

準備好開始 最大連續乘積 了嗎?

註冊 Exercism,透過 68 個練習 和真人引導來學習並精通 Lisp Flavoured Erlang,全部免費。