added fibonnaci in CSharp
parent
15ad9f3bd2
commit
c23d3e07d6
|
@ -1,15 +1,16 @@
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Algorithms.Maths {
|
namespace Algorithms.Maths {
|
||||||
public class fibonacci_series {
|
|
||||||
// Fibonacci Series using Recursion and Memoization
|
// Fibonacci Series using Recursion and caching
|
||||||
|
public class FibonacciSequence {
|
||||||
public static int[] FibonacciSeries(int n) {
|
public static int[] FibonacciSeries(int n) {
|
||||||
var memo = new Dictionary<int, int>();
|
var memo = new Dictionary<int, int>();
|
||||||
var result = new int[n];
|
var result = new int[n];
|
||||||
for (int i = 0; i < n; i++) {
|
for (int i = 0; i < n; i++) {
|
||||||
result[i] = Fibonacci(i, memo);
|
result[i] = Fibonacci(i, memo);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,11 +18,9 @@ namespace Algorithms.Maths {
|
||||||
if (n == 0 || n == 1) {
|
if (n == 0 || n == 1) {
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (memo.ContainsKey(n)) {
|
if (memo.ContainsKey(n)) {
|
||||||
return memo[n];
|
return memo[n];
|
||||||
}
|
}
|
||||||
|
|
||||||
memo[n] = Fibonacci(n - 1, memo) + Fibonacci(n - 2, memo);
|
memo[n] = Fibonacci(n - 1, memo) + Fibonacci(n - 2, memo);
|
||||||
return memo[n];
|
return memo[n];
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using NUnit.Framework;
|
||||||
|
|
||||||
|
namespace Algorithms.Tests.Maths {
|
||||||
|
[TestFixture]
|
||||||
|
public class fibonacci_seires {
|
||||||
|
|
||||||
|
[TestCase(20, new int[] { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181 })]
|
||||||
|
|
||||||
|
[TestCase(30, new int[] { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229 })]
|
||||||
|
|
||||||
|
public void CalculateFibonacciSeriesTest(int value, int[] expected) {
|
||||||
|
var result = Algorithms.Maths.FibonacciSequence.FibonacciSeries(value);
|
||||||
|
Assert.AreEqual(expected, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,19 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using NUnit.Framework;
|
|
||||||
|
|
||||||
namespace Algorithms.Tests.Number_Theory {
|
|
||||||
[TestFixture]
|
|
||||||
public class fibonacci_seires {
|
|
||||||
|
|
||||||
[TestCase(34, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34)]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void CalculateFibonacciSeriesTest(int value, int[] expected) {
|
|
||||||
var result = Algorithms.Maths.fibonacci_series.FibonacciSeries(value);
|
|
||||||
Assert.AreEqual(expected, result);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue