# 計算 21 點的點數 ## 題目: 撰寫一支 function, 傳入三個型別為 int 的參數- card1, card2, card3 如果它們的總和小於或等於 21,返回他們的總和。 如果他們的總和超過 21,並且有一個 11,將總和減少 10。 最後,如果總和(即使在調整後)超過 21,則返回“BUST” ### 限制 card1 ~ card3的值介於 [1,11] &nbsp; ### 解法 ``` CSharp Console.WriteLine(BlackJack.Display(1,2,3) == "6"); // 6 Console.WriteLine(BlackJack.Display(7,7,7) == "21"); // 21 Console.WriteLine(BlackJack.Display(10,10,10) == "BUST"); // 30=>BUST Console.WriteLine(BlackJack.Display(10,10,11) == "21"); // 31 -10=>21 Console.WriteLine(BlackJack.Display(11,11,10)== "BUST"); // 32-10=22 =>BUST public class BlackJack { public static string Display(int card1, int card2, int card3) { int[] cards = new int[] { card1, card2, card3 }; int sum = cards.Sum(); if (sum > 21 && cards.Any(c => c == 11)) sum -= 10; return sum <= 21 ? sum.ToString() : "BUST"; } } ```` --- ###### tags: `LINQ`