El número de victorias de la oferta 32. entero 1 que aparece

 Un número entero de 1 32. número A que aparece en

título Descripción

Calculó el número de entero de 1 a 13 1 surgen, y calcula el número de veces que un número entero desde 100 hasta 1300 en 1 ocurren? Con este fin se contó especialmente de 1 a 13 contiene los dígitos 1 ha 1,10,11,12,13, por tanto, aparecen un total de seis veces, pero para el problema detrás de él Meizhe. ACMer espero que le ayudará a él, y el problema es más generalizado, el número de número entero no negativo en el aparece rango 1 (el número de ocurrencias de 1 a n. 1) de forma rápida puede encontrar ninguna.

Un pensamiento:

 

Pensar dos:

A partir del 1 - n, respectivamente contar el número de cada uno de los números 1

1  público  clase Solution {
 2      público  int NumberOf1Between1AndN_Solution ( int n-) {
 3.          // DP [I] representa de 1 - i en número de todos el número de 1s
 4.          // DP [I] + CNT;     // CNT representa el número actual de número 1 en
 5          // contar el número de cada uno de los números 1, la correcta, 31 veces a la derecha 
6.          
7.          int COUNT = 0 ;
 . 8          para ( int I = 1 ; I <= N-; I ++ ) {
 9              // cada estadística en el número de 1, un derecho, el derecho 31 Tiempos 
10              int tmp = I;
 . 11             el mientras(tmp! = 0 ) {
 12                 recuento + = (% tmp 10 == 1 )? 1 : 0 ;
13                 tmp / = 10 ;
14              }
 15          }
 16          de retorno recuento;
17      }
 18 }

 

Supongo que te gusta

Origin www.cnblogs.com/hi3254014978/p/12589727.html
Recomendado
Clasificación