题目说明
给定两个正整数 a,b(a<b)。求连乘积:
a×(a+1)×(a+2)×...×(b−1)×b 的末尾有多少个 0?
输入格式
一行,包括两个正整数 a,b。a<b≤10000。
输出格式
一个整数,即连乘积末尾 0 的个数。
输入数据 1
11 56
输出数据 1
11
#include<bits/stdc++.h>
using namespace std;
int sum(int a){
int s=0;
int x=a;
while(x%5==0){
x/=5;
s++;
}
return s;
}
int summ(int a){
int s=0;
int x=a;
while(x%2==0){
x/=2;
s++;
}
return s;
}
int main()
{
int n,x;
cin>>n>>x;
if (n>x){
int t;
t=n;
n=x;
x=t;
}
int s=0;
int b=0;
for (int i = n; i <= x; i++){
b+=summ(i);
s+=sum(i);
}
if (b < s){
cout<<b;
}
else{
cout<<s;
}
return 0;
}