operaciones de 2 numeros con lista de digitos, suma resta
Publicado por Jorge (4 intervenciones) el 26/09/2019 23:00:10
hola que tal. Este es un programa para sumar 2 números como lista de digitos. necesitaria saber como puedo hacer un programa que me haga la resta entre dos numeros como lista de digitos tambien, y que los numeros puedan ser tanto positivos como negativos. Muchas gracias
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
33
34
35
36
37
38
39
40
41
42
43
nro1=input("v1: ")
nro2=input("v2: ")
def nro_a_lista(valor):
vec_nro = list(valor)
vec_nro.reverse()
if vec_nro[-1]=="-":
vec_nro=[vec_nro.pop(),vec_nro]
else:
vec_nro=["+",vec_nro]
return vec_nro
def suma(valor1, valor2):
#Iguala los tamaños de las listas, agregando tantos "0" como sea necesario
largo_v1=len(valor1[1])
largo_v2=len(valor2[1])
if largo_v1>largo_v2: #valor1 tiene mas digitos, agrego "0" en valor2
for v in range(largo_v1-largo_v2):
valor2[1].append("0")
elif largo_v2>largo_v1: #valor2 tiene mas digitos, agrego "0" en valor1
for v in range(largo_v2-largo_v1):
valor1[1].append("0")
else:
pass #tienen la misma cantidad de digitos
resultado = []
acarreo = 0
for v in range(len(valor1[1])):
resultado.append("0")
resultado[v] = (int(valor1[1][v]) + int(valor2[1][v]) + acarreo) % 10
acarreo = (int(valor1[1][v]) + int(valor2[1][v]) + acarreo) // 10
if acarreo !=0:
resultado.append(acarreo)
resultado.reverse()
return resultado
r = suma(nro_a_lista(nro1), nro_a_lista(nro2))
print(r)
Valora esta pregunta


0