Jump to content
nuno35

Somar dígitos

Recommended Posts

nuno35

Boa tarde estou a tentar fazer uma funçao que some os digitos de um numero a funçao recebe um numero de 1 ate 999 e por exemplo se for 234 tem de devolver 9(2+3+4).

Estava a tentar fazer usando o resto da divisao mas nao estou a conseguir alguma ajuda sff

Share this post


Link to post
Share on other sites
Baderous

Estás a ir pelo caminho certo, tens de usar a divisão e resto da divisão do número por 10, sucessivamente, por exemplo como neste esquema à la escola primária:

234 |_ 10
    4     23 |_ 10
             3    2 |_ 10
                   2  0

O que pretendes é ir somando os restos das divisões por 10 enquanto o quociente for diferente de zero. Quando for zero, devolves o valor acumulado. Para o efeito podes, na tua função principal, chamar uma função auxiliar com um acumulador inicializado a 0. Depois, na função auxiliar, podes usar a função divMod que te devolve um par com o quociente e resto da divisão e em função do quociente ser 0 ou não, decides o que fazer:

- ou invocar recursivamente a função auxiliar, passando-lhe o novo dividendo (o quociente da divisão anterior) e somando o resto da divisão ao acumulador;

- ou somar apenas o resto da divisão ao acumulador e retornar esse valor.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.