您的位置:首页 > 其它

nefu 1034 数位统计

2015-06-09 21:17 239 查看
[code]#include <iostream>

using namespace std;
int calcu(int n, int k)
{
    double ans=1.0;
    if(n-k<k)
       k=n-k;
    for(int i=1; i<=k; i++)
        ans*=1.0*(n+1-i)/i;
    ans+=0.5;
    return (int)ans;
}
int main()
{
    int n,k;
    while(cin>>n>>k)
    {
        int ans=0;
        while(n)
        {
            int w=0,t=n;
            while(t)
            {
                w++;
                t/=2;
            }
            if(w>k)
                ans+=calcu(w-1,k);
            n-=(1<<(w-1));
            k--;
            if(k<0)
                break;
        }
        cout<<ans<<endl;
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: