public void GetFactorial_Returns_Factorial_Result() { var number = 10; var expected = Enumerable.Range(1, number).Aggregate(1, (factorial, number) => factorial * number); LargeNumberMath.GetFactorial(number).Should().Be(expected.ToString()); }
/// <summary> /// Run solution for problem 20. /// </summary> /// <param name="factorialInput">Factorial input.</param> /// <returns>Sum of factorial result's digits.</returns> public static int Run(int factorialInput) { return(LargeNumberMath.GetFactorial(factorialInput).ToCharArray().Aggregate(0, (sum, digit) => { return sum + int.Parse(digit.ToString()); })); }
public void GetProduct_Returns_Product_of_Two_Numbers() { var number1 = 25; var number2 = 24; LargeNumberMath.GetProduct(number1.ToString(), number2.ToString()) .Should().Be((number1 * number2).ToString()); }
public void GetDifference_Returns_Difference_Of_Two_Numbers_That_Results_In_A_Negative_Number() { var number1 = 103; var number2 = 6983; LargeNumberMath.GetDifference(number1.ToString(), number2.ToString()) .Should().Be((number1 - number2).ToString()); }
public void GetDifference_Returns_Difference_Of_Two_Numbers_That_Results_In_Zero() { var number1 = 888; var number2 = 888; LargeNumberMath.GetDifference(number1.ToString(), number2.ToString()) .Should().Be((number1 - number2).ToString()); }
public void GetDifference_Returns_Difference_Of_Two_Numbers() { var number1 = 348002001; var number2 = 968; LargeNumberMath.GetDifference(number1.ToString(), number2.ToString()) .Should().Be((number1 - number2).ToString()); }
public void GetSum_Returns_Sum_of_Two_Numbers() { var number1 = 64; var number2 = 25; LargeNumberMath.GetSum(number1.ToString(), number2.ToString()) .Should().Be((number1 + number2).ToString()); }
/// <summary> /// Run solution for problem 48. /// </summary> /// <param name="rangeThreshold">Range threshold.</param> /// <returns> /// Last 10 digits of the sum of the series up to <paramref name="rangeThreshold"/> of self /// powers. /// </returns> public static string Run(int rangeThreshold) { var sum = "0"; for (var i = 1; i <= rangeThreshold; i += 1) { sum = LargeNumberMath.GetSum(sum, new Exponent(i, i).ToInt()); } return(sum[^ 10..]);