数学题,范围很大,枚举一定TLE,所以就要找规律啦。求p ~ q之间数列和的差,就是求(1 ~q )-( 1 ~( p - 1))。
/*************************************************************************
> File Name: 10994.cpp
> Author: Toy
> Mail: ycsgldy@163.com
> Created Time: 2013年05月23日 星期四 21时38分10秒
************************************************************************/
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cstdlib>
#include <climits>
#include <sstream>
#include <fstream>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <set>
using namespace std;
const int INF = 0x7fffffff;
long long p, q, t, tm;
int tmp[15];
long long solve ( long long n ) {
long long sum = 0;
while ( n ) {
sum += ( n / 10 ) * 45;
sum += tmp[n % 10];
n /= 10;
}
return sum;
}
int main ( ) {
tmp[0] = 0;
for ( int i = 1; i <= 9; ++i )
tmp[i] = i + tmp[i - 1];
while ( scanf ( "%lld%lld", &p, &q ) == 2 ) {
if ( p < 0 && q < 0 ) break;
if ( p > q ) tm = p, p = q, q = tm;
printf ( "%lld\n", solve ( q ) - solve ( p - 1 ) );
}
return 0;
}