本文已参与「新人创作礼」活动,一起开启掘金创作之路。 题目背景 Bessie 处于半梦半醒的状态。过了一会儿,她意识到她在数数,不能入睡。
题目描述 Bessie的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数。她开始注意每一个数码(0 \ldots 90…9):每一个数码在计数的过程中出现过多少次?
给出两个整数 MM 和 NN (1 \leq M \leq N \leq 2 \times 10^91≤M≤N≤2×109 以及 N-M \leq 5 \times 10^5N−M≤5×105),求每一个数码出现了多少次。
输入格式 第 11 行: 两个用空格分开的整数 MM 和 NN。
输出格式 第 11 行: 十个用空格分开的整数,分别表示数码 0 \ldots 90…9 在序列中出现的次数。
输入输出样例 输入 #1复制
129 137 输出 #1复制
1 10 2 9 1 1 1 1 0 1
#include<iostream>
using namespace std;
int main()
{
int x;
int a[40][40]={0}, i = 1, j = 2;
cin >> x;
a[0][x / 2] = 1;
int m, n;
for (i = 2; i <= x * x; i++)
{
for (m = 0; m<x-1; m++)
{
if (a[0][m] == j - 1)
{
a[x - 1][m + 1] = j;
j++;
}
}
if (i != j)
continue;
for (m = 1; m < x; m++)
{
if (a[m][x-1] == j - 1)
{
a[m-1][0] = j;
j++;
}
}
if (i != j)
continue;
if (a[0][x - 1] == j - 1)
{
a[1][x - 1] = j;
j++;
continue;
}
for (m = 1; m < x ; m++)
{
for (n = 0; n < x - 1; n++)
{
if (a[m][n] == j - 1)
{
if (a[m - 1][n + 1] == 0)
a[m - 1][n + 1] = j;
else
a[m + 1][n] = j;
j++;
}
}
}
}
for (m = 0; m < x ; m++)
{
for (n = 0; n < x ; n++)
{
cout << a[m][n] << " ";
}
cout << endl;
}
return 0;
}