Dúvida no algoritmo da subtração - C

GTAsky

Power Member
Boa noite, preciso de entregar um trabalho amanha, e estou completamente stuck numa parte em que tenho de subtrair 2 bignums que estão implementados em linked lists.

Não é suposto tratarmos numeros negativos, por isso se nos aparecer 300-500 podemos dar exit com uma mensagem de erro.


Alguém me consegue dar uma ajuda?

A linkedlist tem 2 campos, um value e um rest, que aponta para o seguinte.

Tenho implementada uma api também com algumas funcoes, uma delas a pesquisa por elemento na posição x.


o input é dado em string, e convertido para linkedlists revertido e normalizado, ou seja se eu passar 125 e 11, convertendo para linkedlists ficz 521 e 110, para facilitar contas.
 
Última edição:
entretanto lá consegui atinar com a subtração, mas agora tenho outro problema na multiplicação e divisão


a ideia na multiplicação por exemplo, é somar o n1 ao n1, n2 vezes, e vou decrementando o n2 ate 0, a minha dúvida é como é que trato o caso de paragem visto que n2 é uma lista ligada
 
Podes fazer como se faz "no papel":
Código:
     125
   x 211
________
     125 -> nova lista ligada de ints   |
    1250 -> outra lista ligada de ints  | --> Os resultado são listas ligadas de (lista ligadas de ints)
+  25000 -> outra lista ligada de ints  |
_________
Agora tens o problema da soma, que soma 2 listas ligadas e devolve outra lista ligada que por sua vez soma com a seguinte lista ligada:
((125 + 1250) + 25000)

Para a divisão é a mesma coisa
 
Back
Topo