c++
#include <iostream>
using namespace std;
int main()
{
unsigned long long int max_numer;
cin >> max_numer;
long long digit_arr[10] = {};
for (int i = 1; i <= max_numer; i++)
{
int j = i;
while (j > 0)
{
digit_arr[j % 10]++;
j /= 10;
}
}
for (int i = 0; i < 10; i++)
{
cout << digit_arr[i] << " ";
}
}
Объяснение:
Работает на посылках до 100000. Дальше идёт интересная закономерность по которой изменяется.
unsigned long long int digit_arr[10] = {};
int z = max_numer / 100000;
if (z == 1)
{
digit_arr[0] += 38894;
digit_arr[1] += 50001;
digit_arr[2] += 50000;
digit_arr[3] += 50000;
digit_arr[4] += 50000;
digit_arr[5] += 50000;
digit_arr[6] += 50000;
digit_arr[7] += 50000;
digit_arr[8] += 50000;
digit_arr[9] += 50000;
}
if (z == 2)
{
digit_arr[0] += 88894;
digit_arr[1] += 200000;
digit_arr[2] += 100001;
digit_arr[3] += 100000;
digit_arr[4] += 100000;
digit_arr[5] += 100000;
digit_arr[6] += 100000;
digit_arr[7] += 100000;
digit_arr[8] += 100000;
digit_arr[9] += 100000;
}
if (z == 3)
{
digit_arr[0] += 138894;
digit_arr[1] += 250000;
digit_arr[2] += 250000;
digit_arr[3] += 150001;
digit_arr[4] += 150000;
digit_arr[5] += 150000;
digit_arr[6] += 150000;
digit_arr[7] += 150000;
digit_arr[8] += 150000;
digit_arr[9] += 150000;
}
if (z == 4)
{
digit_arr[0] += 188894;
digit_arr[1] += 300000;
digit_arr[2] += 300000;
digit_arr[3] += 300000;
digit_arr[4] += 200001;
digit_arr[5] += 200000;
digit_arr[6] += 200000;
digit_arr[7] += 200000;
digit_arr[8] += 200000;
digit_arr[9] += 200000;
}
if (z == 5)
{
digit_arr[0] += 238894;
digit_arr[1] += 350000;
digit_arr[2] += 350000;
digit_arr[3] += 350000;
digit_arr[4] += 350000;
digit_arr[5] += 250001;
digit_arr[6] += 250000;
digit_arr[7] += 250000;
digit_arr[8] += 250000;
digit_arr[9] += 250000;
}
if (z == 6)
{
digit_arr[0] += 288894;
digit_arr[1] += 400000;
digit_arr[2] += 400000;
digit_arr[3] += 400000;
digit_arr[4] += 400000;
digit_arr[5] += 400000;
digit_arr[6] += 300001;
digit_arr[7] += 300000;
digit_arr[8] += 300000;
digit_arr[9] += 300000;
}
if (z == 7)
{
digit_arr[0] += 338894;
digit_arr[1] += 450000;
digit_arr[2] += 450000;
digit_arr[3] += 450000;
digit_arr[4] += 450000;
digit_arr[5] += 450000;
digit_arr[6] += 450000;
digit_arr[7] += 350001;
digit_arr[8] += 350000;
digit_arr[9] += 350000;
}
if (z == 8)
{
digit_arr[0] += 388894;
digit_arr[1] += 500000;
digit_arr[2] += 500000;
digit_arr[3] += 500000;
digit_arr[4] += 500000;
digit_arr[5] += 500000;
digit_arr[6] += 500000;
digit_arr[7] += 500000;
digit_arr[8] += 400001;
digit_arr[9] += 400000;
}
if (z == 9)
{
digit_arr[0] += 438894;
digit_arr[1] += 550000;
digit_arr[2] += 550000;
digit_arr[3] += 550000;
digit_arr[4] += 550000;
digit_arr[5] += 550000;
digit_arr[6] += 550000;
digit_arr[7] += 550000;
digit_arr[8] += 550000;
digit_arr[9] += 450001;
}
Я попробовал сделать костыль, но там этих костылей до скончания веков писать. Проще сделать алгоритм автоматически рассчитывающий по заметной закономерности, который вычисляет количество цифр max_numer / 100000, и к нему добавить алгоритм, который вычисляет количество цифр в max_numer % 100000
Im dont no
Объяснение:
Im dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont noIm dont no