docsity

Exercício Resolvido a Funções em Python

a. Implemente uma função não recursiva chamada fat_n(n) fat\_n(n) que recebe como parâmetro um número natural nn (n0n\geq0 ) e retorna o fatorial de nn. Por exemplo, a função irá retornar: 11 se n==0n==0;11 se n==1n==1; 22 se n==2n==2; 66 se n==3n==3; 2424 se n==4n==4 e assim por diante.

Registre-se e continue a aula gratuitamente
Você poderá assistir de qualquer dispositivo
leandro-soder-8
pedro-ormond
lidelmar-braga-1
walter-macena
susana-maria-maia-dos-santos
filipe-vila
charles-beserra
etique-te
david-j-yoryor
higor-freitas-4
Outros alunos 1 146 estão fazendo este curso na Docsity

Nesta questão, queremos construir a função fat_n(n)fat\_n(n), que recebe um número inteiro positivo nn e devolve n​n\!!! . Além disso, queremos que esta função seja não recursiva.


Para criar esta função, basicamente precisaremos criar uma variável para ser multiplicada por todos os números inteiros de 11 até nn. Então, ao fim, esta variável deve ser retornada.


Para isso, a primeira coisa que precisamos é declarar a função fat_n()fat\_n().


Esta função recebe somente um argumento: nn.


def fat_n(n):


Agora, precisaremos criar uma variável que armazene o valor que será no final retornado. Vamos chamar esta variável de fatfat.


Precisamos atribuir um valor neutro para esta variável, pois ela será multiplicada por todos os inteiros de 11 até nn. Como 11 é o elemento neutro da multiplicação, o valor inicial a ser atribuido para esta variável deve ser 11.


  fat = 1


A próxima etapa é definir uma variável contadora contcont. A utilidade desta variável será percorrer os números de 11 até nn.


Com isso, precisaremos multiplicar contcont por fatfat a cada vez que contcont for alterado. Como o primeiro valor que precisa ser multiplicado é 11, a variável contcont precisará ter como valor inicial 11.


  cont = 1


Agora, precisaremos de um laço para fazer com que a variável contcont percorra todos os valores inteiros de 11 até nn. Para isso, é interessante criarmos um whilewhile que é finalizado somente quando contcont ultrapassar nn.


Para conseguirmos este efeito com o nosso laço, precisaremos multiplicar fatfat por contcont e aumentar contcont em 11 unidade em cada iteração do laço.


Note que o valor de nn também será incluso, pois também precisaremos multiplicar fatfat por nn.


  while cont <= n:
    fat *= cont #isso é o mesmo que fat = fat * cont
    cont += 1 #isso é o mesmo que cont = cont + 1


Depois deste laço, observe que fatfat foi multiplicado por todos os valores inteiros de 11 até nn. Além disso, se nn valer 00, o valor de fatfat será 11, que é o valor de 00!!.


Portanto, a última coisa que nos resta é retornar o valor de fatfat.


  return(fat)  


Temos agora nosso programa completo.


Resposta esperada:

def fat_n(n):
  fat = 1
  cont = 1  
  while cont <= n:
    fat *= cont #isso é o mesmo que fat = fat * cont
    cont += 1 #isso é o mesmo que cont = cont + 1
  return(fat) 
Anterior
Aulas
Materiais
Próximo