首页 > 代码库 > UVA 10994 Simple Addition

UVA 10994 Simple Addition

感觉这个一定要记下来涨教训啊。一开始找规律找错了。判断超麻烦还各种WA。浪费N个小时啊。。人家几行就A了。太弱,

#include <map>#include <set>#include <list>#include <cmath>#include <ctime>#include <deque>#include <stack>#include <queue>#include <cctype>#include <cstdio>#include <string>#include <vector>#include <climits>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#define LL long long#define PI 3.1415926535897932626using namespace std;int gcd(int a, int b) {return a % b == 0 ? b : gcd(b, a % b);}long long p, q, t, tqm;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 ) tqm = p, p = q, q = tqm;        printf ( "%lld\n", solve ( q ) - solve ( p - 1 ) );    }    return 0;}

 

UVA 10994 Simple Addition