Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@YDrall
Created October 28, 2016 06:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save YDrall/21e8c3a24e8bda239d18bd1504ffb6cf to your computer and use it in GitHub Desktop.
Save YDrall/21e8c3a24e8bda239d18bd1504ffb6cf to your computer and use it in GitHub Desktop.
#Python
def fibonacci(n):
print n
if n == 0 or n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
if __name__ == "__main__":
from sys import argv
print fibonacci(int(argv[1]))
#Python with memoization
prev = {0: 0, 1: 1}
def fibonacci(n):
if prev.has_key(n):
return prev[n]
else:
new_value = fibonacci(n-1) + fibonacci(n-2)
prev[n] = new_value
return new_value
if __name__ == "__main__":
from sys import argv
if len(argv) != 2:
print "usage: %s range" %(argv[0])
else:
print fibonacci(int(argv[1]))
//java
public class fib
{
private static int calFib(int number)
{
if( number ==0 || number ==1)
return 1;
else
return calFib(number-1) + calFib(number-2);
}
public static void main(String[] args)
{
if(args.length !=1)
{
System.out.println("usage: fib range");
System.exit(-1);
}
System.out.println(calFib(Integer.parseInt(args[0])));
}
}
// C/C++
#include <stdio.h>
#include <stdlib.h>
int fib(int n)
{
if( n==0 || n ==1)
return 1;
else
return fib(n-1) +fib(n-2);
}
int main(int argc, char **argv)
{
if(argc != 2)
{
fprintf(stderr, "usage: %s range\n", argv[0]);
exit(0);
}
printf("Result is: %d\n", fib(atoi(argv[1])) );
return 0;
}
// Groovy
def fib
fib = { long n -> n<2?n:fib(n-1)+fib(n-2) }
// with memoization
def fib_mem
fib_mem = { long n -> n<2?n:fib(n-1)+fib(n-2) }.memoize()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment