variável aninhada para loops

Estou tentando descobrir como posso usar a recursão para fazer n-level aninhados para loops. Por exemplo, se n = 3, haveria 3 'níveis'

for(z=0;z<6;z++){
   for(y=0;y<6;y++){
      for(x=0;x<6;x++){
         if (z+y+x==f){
            //do something
         } 
      }
   }
}

e assim por diante

Não consigo descobrir como seria capaz de colocar o loop if no último loop for e como posso acessar as variáveis de loops for anteriores da instrução if. Eu sei que a pergunta sobre loops aninhados variáveis já foi feita várias vezes e eu examinei todos eles. Mas ninguém parece me ajuda

Alguém poderia apresentar uma maneira fácil de usar a recursão para conseguir isso, tendo em mente que ainda sou iniciante em c ++, para me indicar a direção cert

O caso de uso é o seguinte:

Escreva um programa para inserir o número de dados m. O programa produzirá o número total de casos possíveis, o número de casos possíveis para cada possível n en o com a maior probabilidade. Nota: apenas uma entrada m é lida. N é calculado pelo programa

Exemplo se o usuário digitar m = 2, o programa deve gerar

O número total de casos possíveis é 36.
As possibilidades são
2 1
3 2
4 3
.
.
.
12 1

questionAnswers(12)

yourAnswerToTheQuestion