简单组合。
/************************************************************************* > File Name: poj2891.cpp > Author: zhengnanlee > Mail: zhengnanlee@hotmail.com > 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; } }