📄 1888.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1888 on 2006-03-04 at 22:50:47 */
#include <cstdio>
#include <algorithm>
using namespace std;
int f[9] = { 1 };
void stat(int, int*);
int main()
{
int n[2][10], a, b, i;
for(i = 1; i < 9; i++) f[i] = f[i-1] * 10;
while(scanf("%d %d", &a, &b) != EOF && a != 0) {
if(b < a) swap(a, b);
memset(n, 0, sizeof(n));
stat(a-1, n[0]); stat(b, n[1]);
for(i = 0; i < 10; i++) printf("%d%c", n[1][i]-n[0][i], (i == 9) ? '\n' : ' ');
}
return 0;
}
void stat(int n, int* num)
{
int bn = upper_bound(f, f+9, n) - f, i, k;
int bit[10];
for(i = bn-1; i >= 0; i--)
for(bit[i] = 0; n >= f[i]; bit[i]++, n -= f[i]) {
for(k = 0; k < 10; k++) num[k] += i*f[i]/10;
for(k = i; k < bn; k++) num[bit[k]] += f[i];
}
num[0] -= bn;
for(i = 1; i < bn; i++) num[0] -= 9*(bn-i)*f[i-1];
for(i = 0; i < bn; i++) num[bit[i]]++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -