Comprobación Matemática

Javier Silis
27 de Abril del 2005
Hola, amigos programadores.
Quisiera ver si alguien me podria ayudar a demostrar que la suma recurrente de los digitos de un numero es lo mismo que el residuo de la division del numero entre 9.

Esto es, que se puede calcular la suma recurrente de los digitos de num como:

suma=num%9;

Esto se cumple siempre y cuando el numero no sea multiplo de nueve, en cuyo caso, la suma es 9, o lo que es lo mismo:

if(num%9==0)
suma=9;

Lo he usado muchas veces y con todos los numeros me sale, pero no se como probar que esto es cierto. Si alguien sabe cual es la explicación matemática, les agradeceria que me la explicaran.

Gracias.

Noel Solw
27 de Abril del 2005
Lo que tu haces es eliminar multiplos de 9 de la suma, y por eso lo que queda tiene el mismo resto en la division por 9 que el numero original.
Por ejemplo, para un numero de 4 cifras : abcd

abcd = 1000*a + 100*b + 10*c + d

que se puede escribir tambien

abcd = 999*a + a + 99*b + b + 9*c + c + d

abcd = [999*a + 99*b + 9*c] + [a+b+c+d]

dividiendo por 9, el prime termino da resto 0 y el por eso el segundo termino debe tener el mismo resto que el numero original.

Por supuesto puede extenderse la demostracion a cualquier numero de digitos.