傳送門
首先這個題的意思是給你四個數字,讓你找出這四個數字按照規則組合在一起得到的數字的後綴0的個數
前兩個數字爲組合數,後面兩個爲指數然後再相乘
我們的目的是得到後綴0的位數,而後綴0則取決於分解因子後5的個數和2的個數,所以我們只需要統計這兩個數字的個數取最小即可
AC代碼:
#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long long LL;
signed main() {
int t;
cin>>t;
for(int i=1; i<=t; i++) {
int n,r,p,q;
cin>>n>>r>>p>>q;
int two=0,five=0;
while(p%2==0) p/=2,two++;
while(p%5==0) five++, p/=5;
two*=q,five*=q;
int k=n;
while(k) k/=5, five+=k;
k=n;
while(k) k/=2,two+=k;
k=n-r;
while(k) k/=5, five-=k;
k=n-r;
while(k) k/=2, two-=k;
k=r;
while(k) k/=5, five-=k;
k=r;
while(k) k/=2, two-=k;
printf("Case %d: ",i);
cout<<min(two,five)<<'\n';
}
return 0;
}