Python - operaciones de 2 numeros con lista de digitos, suma resta

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 18 puestos en Python (en relación al último mes)
Gráfica de Python

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

operaciones de 2 numeros con lista de digitos, suma resta

Publicado por algoritmo (245 intervenciones) el 27/09/2019 14:07:23
Hola

Espero que te sirva la resta de 2 positivos.

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
v1 = input('Valor 1:')
v2 = input('Valor 2:')
 
if v1 <= v2:
    print 'Valores no aceptados'
else:
    v1 = str(v1)
    v2 = str(v2)
    v1 = v1.zfill(len(v2))
    v2 = v2.zfill(len(v1))
    print '  %s' % v1
    print '  %s' % v2
    print '- ' + ''.rjust(len(v1), '=')
    resultado = []
    acarreo = 0
    for orden in reversed(range(len(v1))):
        n1 = int(v1[orden])
        n2 = int(v2[orden]) + acarreo
        if n1 >= n2:
            acarreo = 0
            resultado.append(n1-n2)
        else:
            acarreo = 1
            resultado.append(10+n1-n2)
 
pinta = '  '
for orden in reversed(range(len(v1))):
    pinta += str(resultado[orden])
print pinta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar