题目:给定两个正整数 a,b(a < b)。求连乘积:a*a+1*a+2*...*b-1*b
本以为这道题是求大数总和之后求余数后面的0,进行取余运算,但是发现算不出来正确答案。
后来发现只需要对每一个乘的数求它是否能被5取余的次数,即结尾就能产生一个0。然后所有数能被5整除的次数相加就是末尾0的个数。
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
long a = scanner.nextLong();
long b = scanner.nextLong();
int count=0;
for (long i = a; i <= b; i++) {
long k=i;
while(k>0 && k%5==0) {
k/=5;
count++;
}
}
System.out.println(count);
}
}