No. The test for the base case is wrong.
Sometimes there are several base cases. Be sure to test for each one.
Here is another math-like definition
for function Thing that works for
zero or positive integers N
(don't worry about what it defines):
Thing( 0 ) = 0 Thing( 1 ) = 1 Thing( N ) = 2*N + Thing( N/2 -1 )
Assume that N/2 means integer division of N by 2.
Is the following a correct translation into Java?
public int Thing( int N )
{
if ( N == 0 )
return 0;
else if ( N == 1 )
return 1;
else
return 2*N + Thing( N/2 - 1 );
}