Categorías > Lenguajes > C++ > Ayuda con problema ...
Nuevo Mensaje | Responder
Sawyer


62 envíos
Desconectado
1759 lecturas
1 respuestas
Ayuda con problema30-09-2009 a las 20:52:01

Estoy haciendo lo que puedo por aprender lenguajes de programación, y en este momento ando viendo C++ del cual me surgio 1 duda que no he logrado encontrar respuesta, y a ver si alguien acá me ayuda.
Necesito tomar un número y de este sumarle todos sus dígitos, he encontrado 1 método, que la verdad es bien obvio, pero no me sirvió por el hecho de que sirve solo para números de no más de 4 dígitos y yo necesito hacerlo con números de hasta 9 dígitos o más. El metodo era ir haciendo divisiones (por ejemplo tenemos el numero 92, lo dividimos por 10 y nos da las decenas de este) y cosas así. A alguien se le ocurre otro método?, no necesariamente tiene que pasarme el código, con la idea ya me basta.

"Las mejores cosas ocurren, cuando menos las esperamos"
Responder | Citar | Moderar | Mensaje Privado
Training Channel
Sanguinario_Joe


368 envíos
Desconectado

#1
RE: Ayuda con problema30-09-2009 a las 21:35:07

Toma, te paso una rutina que me acabo de construir.

Esta limitada a enteros, pero por tamaño, solo tiene la limitacion del procesador (32 bits o 64 bits), es decir, 32 digitos, o 64.

Si quieres subela a la pizarra, en la categoria ayuda a terceros, y asi la estrenamos.

Rutina para sumar los digitos de un entero
int SumaDigitos(int num)
{
    // Declaracion de variables
    int suma=0;

    // Iniciamos un bucle
    while(num>0)
    {
        // num%10 es el resto de num/10, es decir, el ultimo digito
        suma = suma + num%10;
        // Para eliminar el ultimo digito dividimos por diez,
        // y por precision desaparecera
        num = num/10;
    }
    // Salimos sin errores
    return suma;
}



Ya me contaras si te sirvio!

Saludos!!!

Una causa es la causa de la siguiente. Y la suma de las causas es la causa del desastre.
(Principios de la causalidad de Pepe)

Responder | Citar | Moderar | Mensaje Privado