Hola
vsuarez3:
Se me ocurre esta manera de resolverlo:
Código PHP:
var n = "0011813071";
for(var i=n.length-1, m=2, almacen=0, valor; i>=0; i--) {
// calculamos el valor de la cifra multiplicada por m
valor = n.charAt(i)*m;
// Si es mayor de 9 hay que sumar sus cifras:
// una manera puede ser: el 1 de la decena (1º cifra) + el resto de dividir entre 10 (2º cifra)
if( valor > 9 ) valor = 1+valor%10;
// lo almacenamos en el almacen
almacen += valor;
// alternamos el valor de m entre 1 y 2 para el siguiente bucle
if( m==2 ) m=1;
else m=2;
}
document.write("el almacén es "+almacen+"<br/>");
if( almacen%10 == 0 )
document.write("¡Es correcto!");
else
document.write("No es correcto, tiene que ser múltiplo de 10.");
Iniciamos un bucle con 4 variables:
i se encargará de tener la posición que vamos recorriendo, será desde
n.length-1 (ultima cifra), reduciendo mientras se cumpla que
i>=0 (ultima cifra);
m almacena el multiplicador, siempre 2 ó 1, variando en cada iteración;
almacen será la variable que contiene la suma de todos los valores calculados; y
valor es en cada iteración cada cifra por su multiplicador (reducida a un número del 1 al 9 si fuese >9).
Entonces en cada iteración calculamos
valor, lo reducimos si es preciso, almacenamos su valor en
almacen y alternamos el valor de
m para la siguiente iteración.
Al final sólo nos queda mostrar el resultado y decir si es múltiplo de 10.
Saludos.