Ir ao conteúdo

Posts recomendados

Postado

Fala, galera. Tudo bem?

 

Preciso muito de uma ajuda, estou em um trabalho cujo exercício é calcular o fatorial de um número (n!), após fazer o código, não estou conseguindo faze-lo calcular o fatorial de 1 e 0. Podem me ajudar, por favor:

 

def Dados():
    E=0
    while E==0:
        n=input("N: ")
        try:
            n=int(n)
            if (n>=0):
                E=1
        except:
            continue
    return n

def Conta(x):
    fat=1
    y=2
    while y<= x:
        fat = fat*y
        y=y+1
        print(fat)
            
                
Cont="S"
while Cont in ["s","S"]:
    N=Dados()
    Conta(N)
    Cont=input("CONTINUA? ")

Obs.: Preciso manter esse formato

  • Curtir 1
Postado

@E__Rodrigo Bom dia, você pode usar recursividade no seu código:

def Fatorial(n):
	if n == 1 or n == 0:
		return 1
	return n * Fatorial(n-1)

def Dado():
	while(True):
		while(True):
			try:
				numero = int(input("Digite o numero a ser calculado o fatorial: "))
				return numero
			except:
				break

numero = Dado()
print(f"O fatorial de {numero} é {Fatorial(numero)}")

Recursividade é quando você chama a sua própria função dentro dela mesma, gerando assim um loop.

Postado
7 horas atrás, Matheus Evandro Rech disse:

@E__Rodrigo Bom dia, você pode usar recursividade no seu código:


def Fatorial(n):
	if n == 1 or n == 0:
		return 1
	return n * Fatorial(n-1)

def Dado():
	while(True):
		while(True):
			try:
				numero = int(input("Digite o numero a ser calculado o fatorial: "))
				return numero
			except:
				break

numero = Dado()
print(f"O fatorial de {numero} é {Fatorial(numero)}")

Recursividade é quando você chama a sua própria função dentro dela mesma, gerando assim um loop.

 

Me ajudou muito, Matheus. Muito obrigado.

Como faço pra fazer ele ficar perguntando se quer continua? E fazendo a continuação se o usuário digitar "S" e "s"?

  • Curtir 1
Postado

@E__Rodrigo Bem você pode fazer um while true e fazer a chamada da função novamente.

No código fica assim: 

def Fatorial(n):
	if n == 1 or n == 0:
		return 1
	return n * Fatorial(n-1)

def Dado():
	while(True):
		while(True):
			try:
				numero = int(input("Digite o numero a ser calculado o fatorial: "))
				return numero
			except:
				break

while(True):
  dado = Dado()
  print(f"O fatorial de {dado} é {Fatorial(dado)}")
  if input("Continuar ? (S/s)") in ["S", "s"]:
    pass
  else:
    break

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!