The recursive function would work like this: the n-th odd number is 2n-1. With each iteration, we return the sum of 2n-1 and the sum of the first n-1 odd numbers. The break case is when we have the sum of the first odd number, which is 1, and we return 1.
int recursiveOddSum(int n) {
if(2n-1==1) return 1;
return (2n-1) + recursiveOddSum(n-1);
}
To prove the correctness of this algorithm by induction, we start from the base case as usual:
[tex]f(1)=1[/tex]
by definition of the break case, and 1 is indeed the sum of the first odd number (it is a degenerate sum of only one term).
Now we can assume that [tex]f(n-1)[/tex] returns indeed the sum of the first n-1 odd numbers, and we have to proof that [tex]f(n)[/tex] returns the sum of the first n odd numbers. By the recursive logic, we have
[tex]f(n)=f(n-1)+2n-1[/tex]
and by induction, [tex]f(n-1)[/tex] is the sum of the first n-1 odd numbers, and 2n-1 is the n-th odd number. So, [tex]f(n)[/tex] is the sum of the first n odd numbers, as required:
[tex]f(n)=\underbrace{\underbrace{f(n-1)}_{\text{sum of the first n-1 odds}}+\underbrace{2n-1}_{\text{n-th odd}}}_{\text{sum of the first n odds.}}[/tex]