// Nombre de manières d'obtenir un nombre N avec des sommes de 1, 3 et 4 // Dynamic Programming #include #include int main() { unsigned int n = 0; scanf("%u", &n); unsigned int *ways = (unsigned int *)malloc((n+1)*sizeof(unsigned int)); ways[0] = 1; ways[1] = ways[2] = 1; ways[3] = 2; for(int i = 4; i <= n; i++) ways[i] = ways[i-1] + ways[i-3] + ways[i-4]; printf("%u\n", ways[n]); free(ways); ways = NULL; return 0; } // main()