Cómo contar el número de enteros menor que el número dado n que contiene el dígito 4

Solución: soluciones de fuerza bruta y programación dinámica.

#include
usando el espacio de nombres estándar;
int Tabla [1000];
int fourcountDP (int i)
{
int cuenta = 0;
si (i <4) devuelve 0;
if (Tabla [i]! = – 1) devuelve la Tabla [i];
if (i% 10 == 4) Tabla [i] = 1 + fourcountDP (i / 10);
sino Tabla [i] = fourcountDP (i / 10);
devolver la tabla [i];
}
int fourcount (int i)
{
int cuenta = 0;
si (i <4) devuelve 0;
mientras que (i> 0) {
if (i% 10 == 4) cuenta ++;
i = i / 10;
}
cuenta de retorno;
}
int main () {
para (int i = 0; i <100; i ++)
if (cuatro recuento (i)> 0)
cout << i << "tiene sus cuatro cuentas" << fourcount (i) << endl;
cout << "Con DP" << endl;
para (int i = 0; i <100; i ++) {
Tabla [i] = – 1;
}
para (int i = 0; i <100; i ++)
si (fourcountDP (i)> 0)
cout << i << "tiene sus cuatro cuentas" << fourcountDP (i) << endl;
devuelve 0;
}