[si, l'ho giàpostata su 250 forum diversi, ma la sfida è riuscire a scrivere un programma che lo risolva in meno tempo. adesso sta vincendo darkjoker, in perl tunz e con 0.006 secondi di elaborazione. Anch'io posto il perl tunz, ma ci mette ben 0.450 secondi ]
esercizio:
trovare l'UNICO numero a 5 cifre che...
1) la somma delle prime due cifre è 15
2) l'ultima cifra è 2 oppure 6
3) la prima e l'ultima cifra hanno come somma 10
4) tuttle le cifre sommate tra di loro hanno come somma 22
5) le cifre sono tutte diverse tra di loro
6) non c'è neanche uno 0
7) la quarta cifra è pari
può essere tranquillamente risolto a mano e ancora più tranquillamente con un computer...
ecco la soluzione in perl (molto ripetitiva, ma mi è sembrato il modo più rapido):
esercizio:
trovare l'UNICO numero a 5 cifre che...
1) la somma delle prime due cifre è 15
2) l'ultima cifra è 2 oppure 6
3) la prima e l'ultima cifra hanno come somma 10
4) tuttle le cifre sommate tra di loro hanno come somma 22
5) le cifre sono tutte diverse tra di loro
6) non c'è neanche uno 0
7) la quarta cifra è pari
può essere tranquillamente risolto a mano e ancora più tranquillamente con un computer...
ecco la soluzione in perl (molto ripetitiva, ma mi è sembrato il modo più rapido):
Codice:
#!/usr/bin/perl -w
print "\nResolve the Bancomat's problem\n\n";
for ($num=0;$num<99999;$num++) {
@numb = split//,$num;
if ($numb[4]) {
if ($numb[0]+$numb[1] == 15) {
if ($numb[4] == 2 or $numb[4] == 6) {
if ($numb[0]+$numb[4] == 10) {
if ($numb[0]+$numb[1]+$numb[2]+$numb[3]+$numb[4] == 22) {
if ($numb[0] != $numb[1]) {
if ($numb[0] != $numb[2]) {
if ($numb[0] != $numb[3]) {
if ($numb[0] != $numb[4]) {
if ($numb[1] != $numb[2]) {
if ($numb[1] != $numb[3]) {
if ($numb[1] != $numb[4]) {
if ($numb[2] != $numb[3]) {
if ($numb[2] != $numb[4]) {
if ($numb[3] != $numb[4]) {
if ($numb[0] != 0) {
if ($numb[1] != 0) {
if ($numb[2] != 0) {
if ($numb[3] != 0) {
if ($numb[4] != 0) {
if ($numb[3] % 2 == 0) {
print "number ==> $num\n\n";
}}}}}}}}}}}}}}}}}}}}}
@numb = ();
}