Formato de programación del número de página
int veces = 0; int necesita MENOS = 0;
int arr[10];
int guardar = n; mientras(n & gt; 10)
{
veces+= n/10;
necesitaMinus++;
n/= 10;
}
for(int I = 0;i!=10;++i)
arr[I]= veces;
arr[0]-= necesita MENOS;
n=save;
for(int I = 1;i<= necesita MENOS+1;++i)
{
int e = n % 10
for(int j = 1; j & lt= e; ++j)
arr[j]++;
n/= 10;
}
Aquí, el número de apariciones de 0-9 se almacena en la matriz arr .
La idea del algoritmo es principalmente analizar capa por capa. Cada bit tiene de 0 a 9 ciclos, y el número de ciclos es el valor antes de este bit.
Por ejemplo, 456321, entonces el valor de bit 6 * * * realiza un ciclo 45 veces y el valor de bit 2 realiza un ciclo 4563 veces. El bucle aquí se refiere a
un bucle completo, pero no hay 0 en el primer bucle y el algoritmo resta needMinus (en realidad es igual al número total de dígitos menos uno).
El trabajo restante es calcular la última vez que cada bit no completó el ciclo.