Título descripción
Encuentra el número de ocurrencias de 1 en el entero de 1 13, y calcula el número de ocurrencias de 1 en el entero de 100 1300? Por esta razón, contó especialmente los números que contienen 1 del 1 al 13. Son 1, 10, 11, 12 y 13, por lo que son 6 veces en total, pero no tiene nada que ver con las siguientes preguntas. ACMer espera que pueda ayudarlo y hacer que el problema sea más generalizado. Puede encontrar rápidamente el número de ocurrencias de 1 en cualquier intervalo entero no negativo (el número de ocurrencias de 1 de 1 a n).
Solución: El método más directo es atravesar los números del 1 al n, y verificar sucesivamente la ocurrencia de 1. El procedimiento de implementación es el siguiente:
class Solution {
public:
int NumberOf1Between1AndN_Solution(int n)
{
int cnt = 0;
int m = 0;
for(int i = 1;i <= n;i++)
{
for(int j = i; j > 0; j /= 10)
{
if(j % 10 == 1)
cnt++;
}
}
return cnt;
}
};