private IOperationResult CalculateSequence(SequenceTask operation)
        {
            var sequence = new List <int>();

            for (int i = 0; i *i < operation.End; i++)
            {
                sequence.Add(i);
            }

            return(MathOperationResult.SetResult(sequence.ToArray()));
        }
示例#2
0
        public IOperationResult Calculate(IMathTask task)
        {
            var operation = MathOperations
                            .FirstOrDefault(o => o.CanCalculate(task));

            if (operation == null)
            {
                return(MathOperationResult.Error($"Operation '{task}' is not supported."));
            }

            return(operation.Calculate(task));
        }
示例#3
0
        private IOperationResult CalculateFibonacci(FibonacciTask operation)
        {
            var a = operation.Start;
            var b = 1;

            var numbersFibonacci = new List <int>();

            for (
                int index = operation.Start;
                a <= operation.End;
                index++
                )
            {
                numbersFibonacci.Add(a);

                var temp = a;
                a = b;
                b = temp + b;
            }

            return(MathOperationResult.SetResult(numbersFibonacci.ToArray()));
        }
示例#4
0
 public MathOperation(MathOperationResult leftOp, MathOperationResult rightOp, IMathOperation mathOp) : base(0)
 {
     LeftOperand  = leftOp.Result;
     RightOperand = rightOp.Result;
     Operation    = mathOp;
 }