Ostatnio moja reputacja była 25,121
. Zauważyłem, że każda grupa cyfr (tzn. Liczby oddzielone przecinkami) to idealny kwadrat.
Twoim wyzwaniem jest, biorąc pod uwagę nieujemną liczbę całkowitą N i jednoargumentową funkcję logiczną Black Box f : Z * → B , uzyskaj prawdziwą wartość, jeśli każda wartość f zastosowana do grup cyfr N jest prawdziwa, a falsey w przeciwnym razie.
Grupowanie cyfr można znaleźć, dzieląc liczbę na grupy po 3, zaczynając od prawej strony. Grupa najbardziej na lewo może mieć 1, 2 lub 3 cyfry. Kilka przykładów:
12398123 -> 12,398,123 (3 digit groupings)
10 -> 10 (1 digit grouping)
23045 -> 23,045 (2 digit groupings)
100000001 -> 100,000,001 (3 digit groupings)
1337 -> 1,337 (2 digit groupings)
0 -> 0 (1 digit grouping)
Dodatkowe zasady
- Ta funkcja może być przypisana do obu booleanów (np.
true
Ifalse
),1
s i0
s, albo na dowolną wartość truey / falsey. Proszę określić, które formaty są obsługiwane przez twoją odpowiedź. - Możesz wziąć liczbę całkowitą jako dane wejściowe lub ciąg liczb całkowitych (tj. Ciąg złożony z cyfr).
- Możesz napisać program lub funkcję.
- Przesyłając grupy cyfrowe do funkcji f , powinieneś wyciąć wszystkie niepotrzebne zera wiodące. Np. F , gdy zastosowane do N = 123 000, należy wykonać jako f (123) if (0).
Przypadki testowe
Oznaczenie funkcji to n -> f(n)
np n -> n == 0
. Wszyscy operatorzy przyjmują arytmetykę liczb całkowitych. (Np. sqrt(3) == 1
)
function f
integer N
boolean result
n -> n == n
1230192
true
n -> n != n
42
false
n -> n > 400
420000
false
n -> n > 0
0
false
n -> n -> 0
1
true
n -> sqrt(n) ** 2 == n
25121
true
n -> sqrt(n) ** 2 == n
4101
false
n -> mod(n, 2) == 0
2902414
true
n -> n % 10 > max(digits(n / 10))
10239120
false
n -> n % 10 > max(digits(n / 10))
123456789
true
n -> n > 0
zastosować 0
) do przypadków testowych, ponieważ większość odpowiedzi na nich się nie powiedzie.
[0]
.