import java.util.Scanner;
import java.io.*;
class factorial {
void fact(int a) {
int i;
int ar[] = new int[10000];
int fact = 1, count = 0;
for (i = 1; i <= a; i++) {
fact = fact * i;
}
String str1 = Integer.toString(fact);
int len = str1.length();
i = 0;
do {
ar[i] = fact % 10;
fact /= 10;
i++;
} while (fact != 0);
for (i = 0; i < len; i++) {
if (ar[i] == 0) {
count = count + 1;
}
}
System.out.println(count);
}
public static void main(String...ab) {
int a;
Scanner input = new Scanner(System.in);
a = input.nextInt();
factorial ob = new factorial();
ob.fact(a);
}
}
Dieser Code ist arbeiten bis zu a = 10
aber nach Eingabe Nummer größer dann a = 16
es gibt falsche Antwort Hinter. Bitte helfen. Da ich diese Frage nicht posten kann, wenn ich nicht mehr Informationen für diese Frage hinzufüge, aber ich nehme an, dass die Info, die ich oben zur Verfügung stelle, genug ist, um zu verstehen, was ich will.Anzahl Nullen in faktorielles in java
Hinreichend große factorials mit überlaufen 'int', dann wird es' long' überlaufen. Sie können 'BigInteger' verwenden, müssen es aber nicht. Verfolgen Sie, wie viele Faktoren von 2 und 5 im Produkt enthalten sind. Dadurch wird die Anzahl der abschließenden Nullen angezeigt. – rgettman
Ohk Danke für den Tipp. –
Da Sie die min (# 2, # 5) benötigen, und es gibt viel mehr Faktoren von zwei in dem Produkt, müssen Sie wirklich nur die Anzahl der Faktoren von 5 zu verfolgen. – AJNeufeld