diff --git a/Nth_Fib_number#hacktoberfest b/Nth_Fib_number#hacktoberfest new file mode 100644 index 0000000..eae46ee --- /dev/null +++ b/Nth_Fib_number#hacktoberfest @@ -0,0 +1,34 @@ +#include +using namespace std; + +const int MAX = 10000; + +int f[MAX] = {0}; + +int fib(int n) //This soluton is in O(log n) time complexity +{ + if (n == 0) + return 0; + if (n == 1 || n == 2) + return (f[n] = 1); + + if (f[n]) + return f[n]; + + int k = (n & 1)? (n+1)/2 : n/2; + + f[n] = (n & 1)? (fib(k)*fib(k) + fib(k-1)*fib(k-1)) + : (2*fib(k-1) + fib(k))*fib(k); + + return f[n]; +} + +int main() +{ + int n; + cout<<"Enter the nth fibbonacci numner you want to find ~ "; + cin>>n; + cout<