Por ejemplo, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3.628.800,
y la suma de los dígitos en el número 10! es 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27.
Encuentra la suma de los dígitos en el número 100!
-----------------------------------------------------------------------------------------
El programa hace las multiplicaciones correctamente, de cualquier numero, el problema es en el divisor, me explico, antes pongo el código:
Código Java:
Ver original
public class FactorialDigito { double Resultado = 1; double divisor = 1; long Sumatorio = 0; for(int i =100 ; i >= 1;i--){ if(divisor < Resultado){ divisor = divisor * 10; } Resultado = i * Resultado; if(divisor > Resultado && i == 1){ divisor = divisor / 10; } if(i == 1){ for(int x = 0; x == 0;){ Sumatorio = (long)(Resultado / divisor)%10+(Sumatorio); divisor = divisor / 10; if(divisor == 1){ x = 1; } } } } } }
A ver el problema esta en la variable DIVISOR, cuando pongo un numero chiquitito(como 20)hace bien los (*10) pero cuando es un numero muy grande como por ejemplo 100, entonces el Divisor cuando llega a una cantidad muuuuuy grande, "se vuelve loco" y lo que hace es que se vuelve negativo.
10 = me da 27, que esta bien
20 = me da 54, tambien bien
30 = me da 157,¿Aquí ya no se si esta bien? (Aqui tambien hace cosas raras y se convierte en 9999999999999999 y luego se pone de nuevo a 1.0000000000000007E39 o lo que sea...)
Nota: No me hagan el código porfavor, prefiero que me ayudes antes que me hagas el código, para mejorar, gracias.
Que rabia me da
Saludos y muchisimas gracias a los que pierda tiempo en mi