poj2891???

简单组合。

/*************************************************************************
> File Name: poj2891.cpp
> Author: zhengnanlee 
> Mail: [email protected]  
> Created Time: 2013年09月18日 星期三 14时20分17秒
************************************************************************/


#include<iostream>


using namespace std;


#define ULL long long int




ULL calc(ULL a)
{
    if(a < 0)
    return 0;
    ULL ans = a / 10 + 1;
    if(a == 0)
    return 1;
    ULL k = a / 10;
    for(ULL i = 10; k >= 10; i *= 10, k /=10)
    {
        if(k % 10 == 0)
        ans += (a / (i * 10) - 1) * i + a % i + 1;
        else
        ans += a / (i * 10) * i;
    }
    return ans;
}




int main()
{
    ULL a, b;
    while(cin>>a>>b && (a != -1 && b != -1))
    {
        cout << calc(b) - calc(a - 1) << endl;
    }
}


你可能感兴趣的:(组合数学,ACM题解报告)