Dúvida neste código

Pessoal,

Não liguem para esta dúvida. Sou novato em Java/POO.

Eu tenho esse código aqui que funciona, mas eu não entendi como. Ele usa recursividade. Se alguem puder dar uma explicação passo a passo, agradeço.

Obrigado

static long somatoria(int N){ System.out.print("Vamos calcular a somatória dos " + N + " primeiros números..."); if (N == 0){ System.out.print("Não precisamos calcular a soma dos 0 primeiros números."); return 0; } else{ long sum = somatoria(N-1); System.out.println(sum); System.out.println("O resultado da somatória dos " + N + " primeiros números é " + N+ "+" +sum+" = " +(N+sum)); return N+ sum; } }

Qual seria a sua duvida necessariamente…e usado recursividade no caso sim…

A soma dos ‘n’ primeiros numeros maiores que zero é igual a soma do número ‘n’ mais a soma dos ‘n-1’ primeiros numeros maiores que zero.