можете пожалуйста объяснить что здесь происходит?
#include <iostream>
#include <cmath>
using namespace std;
int func (int n);
int A[] = { 5,7,2,6 };
int sum = 0;
int main()
{
const int N = sizeof(A) / sizeof(int);
func(N-1);
cout << sum;
}
int func(int N)
{
cout << N <<"<-"<<endl;
if (N > 0)
{
sum += A[N];
func(N - 1);
}
else sum += A[0];
return 0;
}