n ! significa n × ( n - 1) × ... × 3 × 2 × 1
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 originalpublic class FactorialDigito {
public static void main
(String[] args
) {
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;
}
}
}
}
System.
out.
println(Sumatorio
); }
}
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