Basé sur la question Combien d’entiers positifs <1 000 000 contiennent le chiffre 2? . Je cherche la solution la plus créative pour compter tous les Entiers de X
la Y
contenant l'entier Z
. Z
peut aller de 0 à Y
.
Chaque entier trouvé ne compte qu'une seule fois, même si l'entier Z
apparaît plus souvent. Par exemple:
Z = 2
123 counts 1
22222 also counts 1
Je vais commencer par un algorithme très simple écrit en Java (car il est apprécié de tous):
public class Count {
public static void main(String[] args) {
int count = 0;
for (int i = Integer.parseInt(args[0]); i <= Integer.parseInt(args[1]); i++) {
if (Integer.toString(i).contains(args[2])) {
count++;
}
}
System.out.println(count);
}
}
si vous exécutez cela avec
java -jar Count.jar 0 1000000 2
vous obtenez ceci comme résultat:
468559
Parce que ce problème n'est pas difficile à résoudre, c'est juste un concours de popularité . La réponse la plus votée publiée le 28 février gagne!
N
peut être le cas 123
et ne correspondrait que si la sous-chaîne 123 existe?