Ir ao conteúdo
  • Cadastre-se

Python Programa que lê uma sequência de dígitos e calcula o número inteiro


Posts recomendados

Bom dia. Sou iniciante em python e estou com dúvida nessa questão abaixo:

 

Escreva um programa em Python que lê uma sequência de dígitos, sendo cada um dos dígitos fornecido numa linha separada, e calcula o número inteiro composto por esses dígitos, pela ordem fornecida. Para terminar a sequência de dígitos é fornecido ao programa o inteiro −1. Por exemplo, lendo os dígitos 1 5 4 5 8, o programa calcula o número inteiro 15458.

 

Abaixo o código que fiz:

from random import randint
x = int(input('Digite um número inteiro: '))
soma = 0
contador = 0
while(contador < x):
  numero = randint(1,10)
  print(numero)
  soma += numero
  contador += 1
print('Soma total: ', soma)

 

Creio que não esteja correto. O que posso fazer para atingir o objetivo da questão?

Desde já agradeço!

Link para o comentário
Compartilhar em outros sites

A questão quer que você imprima os números em ordem depois que você digitar eles, tipo:

 

Digite um número inteiro: 1

Digite um número inteiro: 2

Digite um número inteiro: 3

Digite um número inteiro: -1 (Quando digitar -1, ele para de pedir um número)

 

Saída: 123

 

No seu código você está querendo somar os números.

 

Nesse código usei lista, não sei se seria ideal.

x = 0
lista = []

while x > -1:
    x = int(input('Digite um número inteiro: '))
    lista.append(x)

for i in range(len(lista) - 1):
    print(lista[i], end="")

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@airtonmelo Entendi que é para deixar esses dígitos na forma de um inteiro. Para isso as entradas devem ser apenas entre 1 e 9. Assim poderá deixar cada um na casa correta, no exemplo do enunciado o 8 fica na unidade, 5 dezena, 4 centena, etc. 

 

Acumule a soma multiplicando cada dígito por 10 elevado a quantidade (que representa as casas) para posicionar.

 

Outra forma que talvez não seja aceita é concatenar tudo numa string e depois converter para int.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Em 21/03/2022 às 11:09, airtonmelo disse:

Creio que não esteja correto. O que posso fazer para atingir o objetivo da questão?

Desde já agradeço!

O como se faz pode ser MELHOR que só fazer

Acredito que uma responda deve ser conforme o que estudou antes do exercício (essa é a regra geral)

Então

         * Recorde quais eram os assuntos abordados pré-enunciado do exercício.

         * Não utilize recursos da linguagem de programação Python que ainda não estudou, ainda que tenha (de alguma forma) conhecimento deles.

         * Contemple uma solução no mínimo com os assuntos vistos antes desse exercício e também de anteriores: se de algum modo entendeu que serve para o atual.

VEJA

Em 21/03/2022 às 11:09, airtonmelo disse:

Escreva um programa em Python que ¹lê uma sequência de dígitos, sendo cada um dos dígitos fornecido numa linha separada, e ²calcula o número inteiro composto por esses dígitos, pela ordem fornecida. Para terminar a sequência de dígitos é fornecido ao programa o inteiro −1. Por exemplo, lendo os dígitos 1 5 4 5 8, o programa calcula o número ³inteiro 15458.

Acredito que o processo é semelhante ao que se discute no tópico: uma conversão de base 10 (decimal) de inteiro positivo. Cheguei nessa conclusão rapidamente, bastou-me averiguar os exemplos ¹entrada e  ³saída do programa.

image.png.cb453818ec843096e4bb26e3a1a0202b.png

ENTRADA(inputs)

1
5
4
5
8
-1

 A saída não é apenas os dígitos juntinhos, é sim um número inteiro (aka) dígitos convertidos numa variável inteiro e impressos após o fim do ‘loop’.

RESPOSTA(outputs)

print(resposta)
#para imprimir o inteiro resposta
15458

 

🙂   

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

@mauro_b@Midori Fiz da seguinte forma (código abaixo):

 

resultado = 0
while True:
  numero = int(input('Digite um número: '))
  resultado = resultado * 10 + numero
  if numero == -1:
    break
print('O número é: ', resultado)

 

Porém digitando os números 1, 5, 4, 5, 8, -1 o resultado está dando 154579. Como posso corrigir isso?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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...