COLUNA 1: Em que última versão sigma, eu implementei o que eu chamaria uma solução iterativa, em que eu usei um laço para a frente para contar toda a os números entre 1 e m, posteriormente retornando a soma. Mas acontece que nós podemos usar outro técnica para implementar esse mesmo função, uma técnica conhecido como recursão. Uma função recursiva, por assim dizer, é simplesmente aquele que chama a si mesmo. Agora, em si e por si, que pode ser um problema. Se uma função simplesmente chama a si mesmo que chama a si mesmo, que chama a si mesmo, esse processo pode bot nunca acabar. Mas enquanto nós incluímos uma chamada caso base, uma condição que garante que em algumas situações não chamamos nós, esse processo de outra forma infinito looping deve cessar. Vamos agora reimplementar sigma como se segue. Se n for menor ou igual a 0, Sou simplesmente, e um tanto arbitrariamente, vai retornar 0. Doutra maneira, que eu vou fazer é na verdade calcular sigma para o int positiva que eu tenha sido entregue. Agora, o que é sigma de m? Bem, sigma do m é, é claro, a soma de 1 através m. Mas se pensarmos sobre isso de outra maneira, é simplesmente a soma de m mais m menos 1 m, mais menos 2 e assim por diante, todo o caminho até a 1. Então, nesse sentido, parece que Eu poderia simplesmente devolver m plus. E então eu preciso m menos 1 m, mais menos 2. Mas eu tenho uma função que pode dar me precisamente a resposta, ou seja, sigma de m menos 1. Agora, me chamar dessa maneira não faz parece ser a melhor idéia. Porque se chama sigma sigma que chama sigma que chama sigma, você poderia pensar que este processo pode não terminar nunca. Mas é por isso que tivemos a chamada base de caso, na parte superior desta função. A condição if que verifica se m é menor ou igual a 0 não vou de me chamar. Estou em vez de ir para retornar 0, o que por sua vez, vai ser adicionado ao números anteriores, que eu fui somando -se, parando, assim, este processo de outro modo infinito. Vamos agora ver se esta nova implementação funciona. Vamos salvar, compilar e executar este programa. Faça sigma 1 ponto reduzir sigma 1. E vamos fornecê-lo com o mesmos números de antes. 2, que deve espero dar-me 3. Vamos fornecer-lhe 3, que devem espero dar-me 6. E vamos, finalmente, fornecer-lhe 50, que na verdade me dá 1.275.