Project Euler: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
"anche" va dopo
ValterVBot (discussione | contributi)
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]]:
<sourcesyntaxhighlight lang="python">
print sum(x for x in xrange(1, 1000) if x%3==0 or x%5==0)
</syntaxhighlight>
</source>
 
[[C++]]:
<sourcesyntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
Riga 59:
return 0;
}
</syntaxhighlight>
</source>
 
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:
<sourcesyntaxhighlight lang="python">
def sum1toN(n):
return n * (n + 1) / 2
Riga 76:
 
sumMultiples(1000, 3) + sumMultiples(1000, 5) - sumMultiples(1000, 15)
</syntaxhighlight>
</source>
 
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).