Skip to content

Latest commit

 

History

History
35 lines (27 loc) · 888 Bytes

File metadata and controls

35 lines (27 loc) · 888 Bytes

Pergunta

47 - Indica o que é impresso no ecrã pelo seguinte código. Justifica a tua resposta, explicando detalhadamente em que consiste a operação efetuada pelo método Fact().

static void Main(string[] args)
{
    uint n = 5;
    Console.WriteLine($"{n}! = {Fact(n)}");
}

static uint Fact(uint i) => i > 1 ? i * Fact(i - 1) : 1;

Soluções

Solução 1

  • O metodo Fact(), usa recursividade para proceder com os seus cálculos sendo que:

    • Retorna i * Fact(i-1) caso i>1
    • Ou então retorna 1 caso i<=1
  • Resolução:

    • É passado ao método Fact(), uint = 5 através do main, após isso:
      • 5 * Fact(4)
      • 4 * Fact(3)
      • 3 * Fact(2)
      • 2 * Fact(1)
      • 1
    • Fazendo os cálculos isto fica: 5 * 4 * 3 * 2 * 1 = 120
  • Assim sendo, é impresso o seguinte: 5! = 120

Por Rodrigo Marques