RosettaCodeData/Task/Anonymous-recursion/C++/anonymous-recursion-1.cpp

27 lines
376 B
C++
Raw Permalink Normal View History

2013-06-05 21:47:54 +00:00
double fib(double n)
2013-04-10 16:57:12 -07:00
{
if(n < 0)
{
throw "Invalid argument passed to fib";
}
else
{
2013-06-05 21:47:54 +00:00
struct actual_fib
2013-04-10 16:57:12 -07:00
{
2013-06-05 21:47:54 +00:00
static double calc(double n)
2013-04-10 16:57:12 -07:00
{
if(n < 2)
{
return n;
}
else
{
return calc(n-1) + calc(n-2);
}
}
};
return actual_fib::calc(n);
}
}