[Música] Olá pessoal aula de hoje vou fazer a resolução de alguns exercícios de função recursiva em Python Tá então vamos começar aqui com esse primeiro exercício Eu quero fazer uma função recursiva que calcule somatório de números de 1 a n então eu vou receber o número n tá como parmetro minha função e calcular a somatória de 1 a n então se eu digitou ali C ele tem que fazer o quê o 1 mais o 2 mais o 3 mais o 4 mais o 5 perfeito se eu digitasse o quro o que que ele tem que somar o 1 2 3 e o 4 quando a gente trabalha com função recursiva a gente tem que sempre pensar Qual é o caso geral e qual é o caso eh base então o caso geral aqui aqui a gente pode pensar o seguinte Olha a somatória de um número n é igual a quê a somatória de n- 1 dos n- 1 números anteriores mais o meu próprio n é o que a gente tem aqui ó a somatória dos cinco primeiros números é do um até o cinco somatória dos quatro primeiros números é do um até o quatro então poderia dizer que a somatória do 5 é a somatória do 4 tá mais o número C qual que é o meu caso base bom se eu digitar zero é zero somatória do zero primeiros números é zero Ok então é isso aqui que eu tenho que implementar dentro da minha função recursiva vamos ver tá aqui somatório meu n eu já tratei negativo se alguém digitar negativo vai dar zero também tá então se meu n for menor ou igual a zer Ret zer caso contrário n mais o meu somatório de n- 1 então eu somo o termo n e que chamo a função recursivamente pros n- 1 números anteriores Então se o meu n é 5 ele vai ser 5 mais o somatório até 4 perfeito que aí vai entrar na recursão 4 mais somat 3 até chegar no caso base aqui que é o zer perfeito aqui eu fiz o programinha para teste então lendo meu valor n aqui chamei a função somatório passando como parâmetro meu n e pegando a resposta aqui no s tá e imprimindo essa resposta tá então funções recursivas elas são extremamente simples da gente escrever tá elas tem essa codificação mais simples mais elegante o que a gente tem que descobrir é quem é o caso base quem é o caso geral perfeito vamos para mais um quero fazer uma função recursiva para que vai receber dois inteiros k e n e calcular k elevado n vou fazer exponenciação então k elevado n é o qu k x k x k x k n vezes então a mesma ideia né a gente pode fazer o quê que o meu k elevado meu n aqui ele é k ve k Ok vezes k até chegar no último aí n vezes isso tudo aqui é n vezes bom Está óbvio que se fosse k elevado a n - 1 você só teria que tirar o último k aqui da da sequência tá então aqui tá nosso caso caso base Ah então você tem que é sempre multiplicar por mais 1 k igual a gente fez o somatório o nosso caso caso geral isso aqui caso base bom k elevado a 0 é 1 Ah então posso pegar ali k1 se o k é igual elevado a zero eu posso dizer que é um isso aqui que eu tenho que implementar vamos ver como ficaria então fiz aqui a função exponencial KN se o meu n tá é igual a zero eu posso retornar um direto então qualquer número elevado a zero vou dizer um se o meu n for menor do que zero agora eu vou tratar os meus índices negativos eu posso fazer o quê 1 sobre exponencial de k elevado a - n Então se o usuário digitar um n negativo eu vou fazer o quê 1 dividido pela exponencial do número do meu n se digitar um n negativo vou fazer 1 sobre a exponencial do k elevado a n - n como ele negativo vai ficar positivo então aqui ele vai calcular uma fração uma somatória que vai dar uma uma fração então tipo ó 1 2 elevado a -3 isso é 1 sobre 8 então ele vai calcular o 8 aqui E aí 1 sobre 8 Eh meu n não é zero nem é negativo é um valor positivo que que você faz aplica A Regra geral k x exponencial de k n - 1 perfeito bom essa a ideia então o caso geral tá o caso base e aqui eu tô tratando o caso de números negativos tá então se for um n negativo ele vai calcular tá a exponencial aqui para esse n positivo e fazer a fração e aqui meu programinha para teste Então vamos ler o número k número n chama função e armazena o resultado no s imprime o meu número S perfeito então bem simples aí a a ideia tá da da recursão vamos para mais um tá então fazer uma função recursiva para calcular o valor dessa Série S aqui tá considerando um n positivo então novamente aqui eu tenho uma série tá onde você tem assim várias frações sendo somadas e todas essas frações são definidas por essa regra aqui então se o meu I se o meu n for 1 então 1 + 1 qu dá 2 DI 1 2 1 + 2 qu 5 di 2 aqui 1 + 3 qu 9 1 + 9 10 di 3 tá então esse aqui já é a minha fórmula geral que todos os termos são definidos como esse aqui como eu tô trabalhando com uma soma o caso base é se o meu n for for igual a zero tá é zero ou se eu colocar um número negativo também posso dar posso dar uma resposta zero aqui então aqui é implementação se o meu n for menor ou igual a zero eu já termino a função zero o resultado da minha soma é zero se eu tenho um n positivo o que que eu vou fazer vou colocar Aquele caso geral aqui então 1 + n n n x n divido por n ter a fração calculei o valor da fração pro en termo mais chama agora a série para calcular pro termo n - 1 e os anteriores da ele até chegar no zero então implementa a fração mais chama a função para calcular os outros termos da fração mudando agora para n- 1 aqui tudo bem então então bem simples de novo recursão a implementação ela é simples Qual é a dificuldade entender quem é o caso geral quem é o caso Base ok aqui o meu programa de test então ali um número n chamei a série tá minha função aqui então S recebe o resultado E exibi o resultado perfeito tá não tem segredos aqui eh Espero que tenham gostado tá da do vídeo e qualquer dúvida Vocês deixam um comentário aí tá bom e até a próxima