Пример #1
0
        public FibonacciResult Fibonacci(FibonacciRequest request)
        {
            _calculatedFibonaccis = new Dictionary <int, int>();
            var result = new FibonacciResult();

            if (request.Number > 40)
            {
                throw new ApplicationException(string.Format("The submitted value [{0}] is greater than the max value allowed [10]!", request.Number));
            }
            var data = new FibonacciValue();

            try
            {
                data.Formula = request.UseRecursiveAlgorithm
                    ? "f(n) = f(n - 1) + f(n - 2)"
                    : string.Format("f(n) = (phi^n - ( -1^n / phi^n )) / √5{0}[where phi = (1 + √5) / 2]", Environment.NewLine);
                data.Value = request.UseRecursiveAlgorithm
                    ? FibonacciRecursive(request.Number)
                    : FibonacciNonRecursive(request.Number);
                data.Iterations = _iterationCounter;
                result.Data     = data;
            }
            catch (Exception ex)
            {
                result = new FibonacciResult
                {
                    Errors = ex.Message
                };
            }

            return(result);
        }
Пример #2
0
        public string FibonacciWebGet(string number, string useRecursiveAlgorithm)
        {
            // Convert the parameters to the request object and pass
            int integer;

            if (!int.TryParse(number, out integer))
            {
                integer = 0;
            }
            var request = new FibonacciRequest(integer, useRecursiveAlgorithm.ToLower() == "true");

            return(FibonacciWebPost(request));
        }
Пример #3
0
 public string FibonacciWebPost(FibonacciRequest request)
 {
     // Return a JSON version of the result object
     return(new JavaScriptSerializer().Serialize(Fibonacci(request)));
 }