组合数

来源:互联网 发布:淘宝一钻多少笔交易 编辑:程序博客网 时间:2024/06/03 10:48

好简单啊……
就是分解质因数
只需要分解2 和 5
因为只有2*5是等于10的
然后分子分母约掉
看最后对2和5的数量取min

#include<iostream>#include<algorithm>#include<cstring>using namespace std;int t,n,m;long long sum[4],ans;long long p;void work(long long  x,long long  y){    p=2;    while(p<=x)    {        sum[1]+=y*(x/p);        p=p*2;    }    p=5;    while(p<=x)    {        sum[2]+=y*(x/p);        p=p*5;    }}int main(){    int T;     cin>>T;    while(T--)    {        cin>>n>>m;        sum[1]=0;        sum[2]=0;        work(n,1);        work(n-m,-1);        work(m,-1);            ans=min(sum[1],sum[2]);        cout<<ans<<endl;     }    return 0;} 
原创粉丝点击