Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/01/2003, 06:33
Avatar de mikel_gomez
mikel_gomez
 
Fecha de Ingreso: febrero-2001
Mensajes: 482
Antigüedad: 23 años, 2 meses
Puntos: 3
Re: Suma de dígitos de una cantidad

Antonito:

Daniel está completamento en lo cierto.

Además, en tu función, estás concatenando, no sumando, los valores de kk y kk1. No sé si eso es correcto, si no lo es... debes aplicar la función parseInt() a los valores de entrada.

Por lo demás, la lógica de tu función parece correcta, pero ya que lo que intentas hacer es un típico algoritmo que también se puede plantear como recursivo, he preferido rehacerlo como tal, en vez de buscar errores o fallos.

Ejemplo alternativo completo:
Código:
<html>
  <head>
    <script type="text/javascript">
    <!--
      function sumaDigitos(cantidad) {
        var suma = 0 ;
        var cadena = cantidad.toString();
        for(var i=0; i<cadena.length; i++)
          suma += parseInt(cadena.substr(i, 1), 10);
        if (suma > 9) return sumaDigitos(suma)
        else return suma
      }

      function calcula() {
        var cantidad = parseInt(document.formulario.kk.value, 10) +
                       parseInt(document.formulario.kk2.value, 10) ;
        alert(sumaDigitos(cantidad));
      }
    //-->
    </script>
  </head>
  <body>
    <form action="" name="formulario" method="get">
      <input name="kk" />
      <input name="kk2" />
      <input type="button" value="Calcular" onclick="calcula()" />
    </form>
  </body>
</html>
Espero que te sirva.
Saludos,
Mikel
__________________
Mikel Gómez
Hay que aprender mucho para saber poco