统计末尾0的个数 给定两个正整数A和B(A<B),请统计从A到B的所有整数的乘积的末尾有多少个0。例如:给定的两个数是10和
#include <stdio.h>
int main() {
int i,j,m=0,a,b;
while((scanf("%d%d",&a,&b))==2) {
m=0;
for (i=a; i<=b; i++) {
j=i;
if(j<125) {
while (j%5==0&&j>0) {
j=j/5;
m++;
}
} else if(j>=125&&j<625) {
while (j%25==0&&j>0) {
j=j/25;
m++;
}
} else if(j>=625&&j<=3125) {
while (j%125==0&&j>0) {
j=j/125;
m++;
}
}
}
printf("%dn",m);
}
}
20,那么需要计算的算式是: 10×11×12×13×14×15×16×17×18×19×20 该算式的结果是6704425728000,末尾有3个0。 这个算式的结果太大了,也许你能找到简便算法,不需要计算出整个算式的结果就能知道它末尾的0的个数! ###输入格式
若干组空格分隔的2个整数A和B(A<B且都不超过100000),每组数据一行。
###输出格式 每组输入数据对应输出一个整数,单独占一行,为从A乘到B的结果的末尾的0的个数。 ###输入样例
1 10
125 128
1 100
21 24
###输出样例
2
3
24
0