Project Euler: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
"anche" va dopo |
m →Esempio di un problema e la sua risoluzione: tag source deprecati, replaced: <source lang= → <syntaxhighlight lang= (3), </source> → </syntaxhighlight> (3) |
||
Riga 43:
</pre>
[[Python]]:
<
print sum(x for x in xrange(1, 1000) if x%3==0 or x%5==0)
</syntaxhighlight>
[[C++]]:
<
#include <iostream>
using namespace std;
Riga 59:
return 0;
}
</syntaxhighlight>
Per i problemi più complicati, diventa importante trovare un algoritmo efficiente. Per questo problema, possiamo ridurre di molto i calcoli utilizzando il [[principio di inclusione-esclusione]] e una [[sommatoria]].
Riga 68:
Implementazione in python:
<
def sum1toN(n):
return n * (n + 1) / 2
Riga 76:
sumMultiples(1000, 3) + sumMultiples(1000, 5) - sumMultiples(1000, 15)
</syntaxhighlight>
Nella notazione [[O-grande]], l'algoritmo a forza bruta è O(n) e l'algoritmo efficiente è O(1) (assumendo costante il tempo per le operazioni aritmetiche).
|