/// <summary>
        /// 遞等式計算通用處理
        /// </summary>
        /// <param name="type">題型</param>
        /// <param name="expressFormat">計算表達式</param>
        /// <param name="getArguments">參數處理邏輯</param>
        /// <param name="formulas">計算式作成</param>
        private void CleverStartegy(TopicType type, string expressFormat, Func <int[]> getArguments, IList <RecursionEquationFormula> formulas)
        {
            // 當前反推判定次數(一次推算內次數累加)
            int defeated = 0;

            RecursionEquationFormula RecursionEquation = new RecursionEquationFormula
            {
                Type           = type,
                ConfixFormulas = new List <Formula>(),
                Answer         = new List <int>()
            };

            while (1 == 1)
            {
                // 如果大於三次則認為此題無法作成繼續下一題
                if (defeated == INVERSE_NUMBER)
                {
                    RecursionEquation = null;
                    break;
                }

                int[] factors = getArguments();
                if (factors == null)
                {
                    defeated++;
                    continue;
                }

                StringBuilder express = new StringBuilder();
                var           answer  = factors[3];
                express.AppendFormat(CultureInfo.CurrentCulture, expressFormat, factors[0], factors[1], factors[2]);

                // 計算式推導
                var calc = new ExpressArithmeticUtil();
                if (!calc.IsResult(express.ToString(), out int result))
                {
                    defeated++;
                    continue;
                }
                if (result != answer)
                {
                    defeated++;
                    continue;
                }
                // 加入推導出計算式集合
                calc.Formulas.ToList().ForEach(f => RecursionEquation.ConfixFormulas.Add(f));
                RecursionEquation.Answer.Add(answer);
                defeated = 0;

                break;
            }

            if (RecursionEquation != null)
            {
                formulas.Add(RecursionEquation);
            }
        }
        /// <summary>
        /// 遞等式計算[A+B+C]
        /// </summary>
        /// <param name="formula"> 計算式 </param>
        /// <returns> </returns>
        private string CleverA(RecursionEquationFormula formula)
        {
            StringBuilder html = new StringBuilder();

            html.AppendFormat("{0} {1} {2} {3} {4}",
                              formula.ConfixFormulas[0].LeftParameter,
                              formula.ConfixFormulas[0].Sign.ToOperationUnicode(),
                              formula.ConfixFormulas[0].RightParameter,
                              formula.ConfixFormulas[1].Sign.ToOperationUnicode(),
                              formula.ConfixFormulas[1].RightParameter);

            return(html.ToString());
        }
 /// <summary>
 /// 遞等式計算[A-B-C]
 /// </summary>
 /// <param name="formula"> 計算式 </param>
 /// <returns> </returns>
 private string CleverH(RecursionEquationFormula formula)
 {
     return(CleverA(formula));
 }