public void Calculate(IsMultipleOfResponse isMultipleOfResponse) { foreach (var number in isMultipleOfResponse?.result) { number.isMultiple = number.number != 0 && (number.number % this.divisor == 0); } }
public static IsMultipleOfResponse ToIsMultipleOfResponse(this IsMultipleOfRequest isMultipleOfRequest) { var isMultipleOfResult = new IsMultipleOfResponse(); if (isMultipleOfRequest.numbers != null && isMultipleOfRequest.numbers.Any()) { isMultipleOfResult.result = isMultipleOfRequest .numbers .Select(n => new NumberResponse() { number = n, isMultiple = false }).ToList(); } return(isMultipleOfResult); }
public ActionResult <IsMultipleOfResponse> Post([Range(1, int.MaxValue)] int divisor, IsMultipleOfRequest isMultipleOfRequest) { _logger.LogInformation(LogEvents.PostIsMultipleOf, "Calculating multiple numbers of {divisor} divisor.", divisor); var isMultipleOfResult = new IsMultipleOfResponse(); isMultipleOfResult = isMultipleOfRequest.ToIsMultipleOfResponse(); var divisorCalculator = DivisorCalculatorFactory.Create(divisor); divisorCalculator.Calculate(isMultipleOfResult); _logger.LogInformation(LogEvents.ResponseIsMultipleOf, "Result for calculating multiple numbers of {divisor} divisor: {isMultipleOfResult}", divisor, JsonSerializer.Serialize(isMultipleOfResult)); return(Ok(isMultipleOfResult)); }
public void IsMultiple__81728901_Of_151() { var calculator = new CalculatorOfAny(151); IsMultipleOfResponse isMultipleOfResponse = new IsMultipleOfResponse() { result = new List <NumberResponse>() { new NumberResponse() { number = 81728901 } } }; calculator.Calculate(isMultipleOfResponse); Assert.IsTrue(isMultipleOfResponse.result.First().isMultiple); }
public void IsMultiple__97035_Of_3() { var calculator = new CalculatorOfAny(3); IsMultipleOfResponse isMultipleOfResponse = new IsMultipleOfResponse() { result = new List <NumberResponse>() { new NumberResponse() { number = 97035 } } }; calculator.Calculate(isMultipleOfResponse); Assert.IsTrue(isMultipleOfResponse.result.First().isMultiple); }
public void IsMultiple__323455693_Of_11() { var calculator = new CalculatorOf11(); IsMultipleOfResponse isMultipleOfResponse = new IsMultipleOfResponse() { result = new List <NumberResponse>() { new NumberResponse() { number = 323455693 } } }; calculator.Calculate(isMultipleOfResponse); Assert.IsTrue(isMultipleOfResponse.result.First().isMultiple); }
public void Calculate(IsMultipleOfResponse isMultipleOfResponse) { foreach (var numberResponse in isMultipleOfResponse?.result) { int even = 0; int odd = 0; int[] units = Math.Abs(numberResponse.number).ToString().Select(c => int.Parse(c.ToString())).ToArray(); for (int i = 0; i < units.Length; i++) { if (i % 2 == 0) { odd += units[i]; } else { even += units[i]; } } numberResponse.isMultiple = numberResponse.number != 0 && ((odd - even == 0) || (Math.Abs((odd - even) % 11) == 0)); } }