Dyalog APL比賽-2019年-Phase 1-第2題

先看看題目要求: 這是相對容易的一條題目吧,以下用 NARS2000 解題。 題目要求寫一個函數Z,當Z被輸入引數 N(0至100)的時候,傳回相對應的字母評級,就好似小學生的考試評級一樣。 思路非常簡單:建立字母陣列V,V 由65個F(0分至64分)、5個D(65分至69分)、10個 C(依此類推)、10個B及11個A順序組成;然後用N做陣列V的指數,返回V[N+1]的值。用圖像表示: 提交的程式碼如下: 解說一下: 表達式 (65 5 10 10 11)/'FDCBA' 用 replicate 函數 " /" 建構陣列 V 於是陣列 V 由65個 F ,5個 D ,10個 C ,10個 B ,11個 A 組成 基於右引數 ⍵ ,提取V的第 ⍵+1 個元素(何以?因為 Z 0 要傳回 V 的第 1 個元素,而 Z 100 則需要傳回V的第 101 個元素,如此類推) 注意,這個寫法容許 ⍵ 係 陣列 ,也是題目的要求。例如: APL 的簡潔總是給人一種不能言喻的美感。 一項更正: 原文介紹 " / " 時把它稱作運算子,但在以上用法中,其作用應為函數。