import java.util.Scanner; public class text { public static void main(String[] args) { //输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 Scanner fac = new Scanner(System.in); System.out.println("从键盘上输入数字:"); int f = fac.nextInt(); fac(f); } public static void count(int fac){ int count = 0; while(fac != 0){ if(fac % 10 == 0){ count++; }else{ break; } fac /= 10; } System.out.println("该阶乘零的个数有:" + count); } public static void fac(int f){ int fac = 1; for(int i = 1; i <= f;i++){ fac *= i; } System.out.println(f + "的阶乘为:" + fac); count(fac); }
import java.util.Scanner; public class 末尾0的个数{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int num = sc.nextInt(); System.out.println(countZeroOfNum(num)); } sc.close(); } /* 尾部所有的0都是由因子5*2得到的, 由于2、6、8 都可以视为因子2,则 因子2的个数远大于因子5的个数, 所以只需要求出因子5的个数即可。 * */ public static int countZeroOfNum(int num){ int zeroCount = 0; while(num > 4){ int temp = num; //由于25,125这个数不止含有一个因子5,所以需要求完后,再调用n/5 while(temp % 5 == 0){ zeroCount++; temp = temp / 5; } num = num-1; } return zeroCount; } }
import java.util.*; public class Main{ public static void main(String[] args) { Scanner in=new Scanner(System.in); int n=in.nextInt(); int zeros=0; for(int i=n;i>0;i--) { int m=i; while (m%5==0) { zeros++; m=m/5; } } System.out.println(zeros); } }
import java.util.Scanner;
public class Test03 {
public static int getZero(int num){
return num==0?0:num/5+getZero(num/5);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println(getZero(num));
}
}
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int count=0; for(int i=1;i<=n;i++){ int tem=i; while(0==(tem%5)){ count++; tem=tem/5; } } System.out.println(count); } }
用递归写的import java.util.Scanner;
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
BigInteger n=new BigInteger(sc.next());
StringBuffer sb=new StringBuffer(factorial(n).toString(10));
String regex="[^0]";
String[] strs=sb.reverse().toString().split(regex);
if(strs.length==0) {
System.out.println("0");
}else {
System.out.println(strs[0].length());
}
}
private static BigInteger factorial(BigInteger n) {
if(n.intValue()==1) {
return n;
}else {
return n.multiply(factorial(new BigInteger(String.valueOf((n.intValue()-1)))));
}
}
}
BigInteger是个好东东,哈哈哈
哇哇,学习!评论区多大神
import java.util.*; public class Main { /** * @param args */ public static void main(String[] args){ Scanner input = new Scanner(System.in); int num = input.nextInt(); int count=0; int tempnum=0; for(int i=1;i<=num;i++){ tempnum=i; while(tempnum%5==0){ count++; tempnum=tempnum/5; } } System.out.println(count); } }
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNextInt()){
int num = scanner.nextInt();
int result = 0;
for(int i = 1;i <= num;i++){
int temp = i;
while(temp%10 == 0 && temp != 0){
result++;
temp /= 10;
}
while(temp%5 == 0 && temp != 0){
result++;
temp /= 5;
}
}
System.out.println(result);
}
}
}
import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = Integer.parseInt(scanner.nextLine()); // long result = 1; // for (int i = 1; i <= n; i++) { // result *= i; // System.out.println(result); // } // String string = String.valueOf(result); // System.out.println(string); // int count = 0; // for (int i = string.length() - 1; i >= 0; i--) { // if (string.charAt(i) == '0') { // count++; // } else { // break; // } // } // System.out.println(count); int count=0; while(n/5!=0){ n=n/5; count+=n; } System.out.println(count); } } }
import java.util.*; public class Main{ public static void main(String args[]){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); long m=1; for(int i=n;i>1;i--){ m*=i; } String s=String.valueOf(m); int count=0; for(int j=0;j<s.length();j++){ if(s.charAt(j)=='0'){ count++; } } System.out.println(count); } }
import java.util.Scanner; /** * 输入一个正整数n,求n!(即阶乘)末尾有多少个0? * 比如: n = 10; n! = 3628800,所以答案为2 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n = sc.nextInt(); int result = 0; while (n != 0) { result += n / 5; n /= 5; } System.out.println(result); } } }