[ create a new paste ] login | about

Link: http://codepad.org/JkGrGaYy    [ raw code | output | fork ]

proch - Perl, pasted on Jul 14:
#!/usr/bin/env perl

# script che cerca numeri di cinque cifre tali da avere:
# - la prima cifra che indica il numero di zeri totali presente nel numero
# - la seconda cifra che indica il numero di uno totali nel numero...

# faccio un ciclo fra tutti i numeri di cinque cifre:
# (potrei scartarne a priori ma per ora non lo faccio)

for ($numero = 10000; $numero <= 99999; $numero++) {
	#devo verificare le cifre. Posso metterle tutte in un array così:

	$lunghezza = length($numero);		# so che ho 5 cifre, ma rendo l'algoritmo generalizzabile non 
						# dandolo per scontato

	$verificatore = 0;			# azzero una variabile che uso per verificare che il numero sia corretto
						# DEVO azzerarla prima del ciclo successivo
	
	for ($i = 0; $i < $lunghezza; $i++) {
		$cifra = substr($numero, $i, 1);	# recupero la cifra "i-esima";
		$copia_numero = $numero;		# creo una copia di "numero" per non interferire col primo ciclo for
		$copia_numero =~s/$i//g;		# rimuovo dal numero tutte le cifre pari alla "i" 
	
		$totale_cifre = $lunghezza - length($copia_numero);
		if ($totale_cifre == $cifra) {
			$verificatore++;		# se la cifra i-esima è corretta aumento di uno il contatore "verificatore"
		}

		
	}
	#adesso ho verificato tutte le cifre. il numero è ok solo se tutte le cifre lo erano:
	if ($verificatore == $lunghezza) {
		print "Numero: $numero\n";
	}	

}


Output:
1
Numero: 21200


Create a new paste based on this one


Comments: