Na podstawie pytania Ile dodatnich liczb całkowitych <1 000 000 zawiera cyfrę 2? . Szukam najbardziej kreatywne rozwiązania, aby policzyć wszystkie liczby całkowite od X
do Y
zawierający Integer Z
. Z
może wynosić od 0 do Y
.
Każda znaleziona liczba całkowita liczy się tylko raz, nawet jeśli liczba całkowita Z
pojawia się częściej. Na przykład:
Z = 2
123 counts 1
22222 also counts 1
Zacznę od bardzo prostego algorytmu napisanego w Javie (ponieważ wszyscy go kochają):
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);
}
}
jeśli uruchomisz to z
java -jar Count.jar 0 1000000 2
otrzymujesz to w wyniku:
468559
Ponieważ ten problem nie jest trudny do rozwiązania, to tylko konkurs popularności . Najpopularniejsza odpowiedź opublikowana do 28 lutego wygrywa!
N
może być 123
i pasowałoby tylko, jeśli istnieje podciąg 123?