麥粒

麥粒

中等

簡介

從前有一位聰明的僕人,他救了王子的性命。 國王承諾,只要僕人想得出來,他都會賞賜。 僕人知道國王熱愛西洋棋,便告訴國王,他想要一些麥粒。 在棋盤的第一格放一粒麥子,之後每一格的麥粒數量都是前一格的兩倍。

說明

計算棋盤上的麥粒數量。

棋盤有 64 個格子。 第 1 格有 1 粒麥子,第 2 格有 2 粒麥子,第 3 格有 4 粒麥子,依此類推,每格加倍。

撰寫程式碼來計算:

  • 指定格子上的麥粒數量
  • 棋盤上的麥粒總數

整數最大值

根據 Vim 文件:

假設使用 64 位元數字(請見 v:numbersize),無號數會被截斷為 0x7fffffffffffffff 或 9223372036854775807。

換句話說,Vim script 無法將任何大於或等於 2^63 的數字表示成整數。

這個練習的部分測試需要 64 位元整數,這已經超出 Vim script 的整數大小限制。基於這項限制,計算結果會與一個表示該整數值的字串進行比對,而不是把答案表示成整數。你能避開比這個語言直接允許範圍更大的數字,來解決這個問題嗎?

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Vim script Exercism

準備好開始 麥粒 了嗎?

註冊 Exercism,透過 89 個練習 和真人引導來學習並精通 Vim script,全部免費。