Error en código
Publicado por Francisco (1 intervención) el 30/09/2018 00:51:53
Buenas a todos.
Tengo un pequeño problema con un programa ejercicio de la Universidad con Python y no se como encontrarlo.
Por pequeño cabe aclarar que el programa esta casi listo (Solo le falta añadir para que sea mediante una función).
La consigna es que el programa que se tiene que realizar tome tantos números por parte del usuario hasta que el mismo ingrese -1 y termine el ingreso de números.
Una vez ingresados, se tiene que sumar las primeras cifras de todos los numero ingresados por el usuario. Si el usuario ingresó números negativos, se los hay que transformar en positivos.
El programa es el siguiente:
Para lograr el objetivo en sí lo que hice fue que para obtener cada primera cifra, se divida el numero ingresado por 10 elevado a N-1 cifras del numero ingresado.
235324
Hasta ahi todo bien, PERO el problema es que a la hora de ingresar numero MUY GRANDES, siempre me suma 1 mas, o sea:
105234234234 Se obtiene el 1
232143253242 Se obtiene el 2
622452343049 Se obitene el 6
-1
Deberia ser:
1 + 2 + 6 = 9
Pero en su lugar me entrega un 10 y no encuentro el fallo :c.
Tengo un pequeño problema con un programa ejercicio de la Universidad con Python y no se como encontrarlo.
Por pequeño cabe aclarar que el programa esta casi listo (Solo le falta añadir para que sea mediante una función).
La consigna es que el programa que se tiene que realizar tome tantos números por parte del usuario hasta que el mismo ingrese -1 y termine el ingreso de números.
Una vez ingresados, se tiene que sumar las primeras cifras de todos los numero ingresados por el usuario. Si el usuario ingresó números negativos, se los hay que transformar en positivos.
El programa es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
print("Ingrese varios números para sumar sus primeros dígitos entre sí, ingrese -1 para terminar")
lista = []
numero = int(input("Ingrese un número "))
while numero != -1: # Se ingresan los numero que les sumaran las cifras
lista.append(numero)
numero = int(input("Ingrese un número, o -1 para terminar "))
for i in range(len(lista)): # A cualquier número negativo ingresado se lo volverá positivo
if lista[i] < 0:
lista[i] = lista[i] * -1
for i in range(len(lista)): # Se hacen las operaciones para sumar las cifras de cada numero generado en la lista
cifra = 10
OK = 0
if lista[i] == 0:
lista[i] = 0
elif cifra == lista[i]:
lista[i] = lista[i] / cifra
while OK != 1:
if cifra > lista[i]:
while cifra > lista[i]:
cifra = cifra/10
lista[i] = lista[i] / cifra
OK = 1
elif cifra < lista[i]:
while cifra < lista[i]:
cifra = cifra*10
print(int(sum(lista)))
(fin)
Para lograr el objetivo en sí lo que hice fue que para obtener cada primera cifra, se divida el numero ingresado por 10 elevado a N-1 cifras del numero ingresado.
235324
Hasta ahi todo bien, PERO el problema es que a la hora de ingresar numero MUY GRANDES, siempre me suma 1 mas, o sea:
105234234234 Se obtiene el 1
232143253242 Se obtiene el 2
622452343049 Se obitene el 6
-1
Deberia ser:
1 + 2 + 6 = 9
Pero en su lugar me entrega un 10 y no encuentro el fallo :c.
Valora esta pregunta


0