-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfibnocci.cs
73 lines (66 loc) · 2.01 KB
/
fibnocci.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//Rextester.Program.Main is the entry point for your code. Don't change it.
//Compiler version 4.0.30319.17929 for Microsoft (R) .NET Framework 4.5
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
long n=1000;
long []fib = new long[n+1];
long f=0;
//Your code goes here
//f=Fibnocci_Loop(n);
//f=Fibnocci_DividenConquer(n);
f=Fibnocci_DynamicProgramming(n,ref fib);
Console.WriteLine(f);
}
private static long Fibnocci_Loop(long number)
{
if (number <= 1)
{
return number;
}
else
{
return Fibnocci_Loop(number - 1) + Fibnocci_Loop(number - 2);
}
}
private static long Fibnocci_DividenConquer(long number)
{
//Console.WriteLine("input:"+number.ToString());
long result=0;
if(number<=1)
{
result= number;
}
else
{
result=Fibnocci_DividenConquer(number-2)+Fibnocci_DividenConquer(number-1);
}
return result;
}
private static long Fibnocci_DynamicProgramming(long number,ref long[] fib)
{
//Console.WriteLine("input:"+number.ToString());
long result=0;
if(fib[number]>0)
return fib[number];
else if(number<=1)
{
result=number;
fib[number]=result;
}
else
{
result=Fibnocci_DynamicProgramming(number-2,ref fib)+Fibnocci_DynamicProgramming(number-1,ref fib);
fib[number]=result;
}
return result;
}
}
}