Gần đây, danh tiếng của tôi là 25,121
. Tôi nhận thấy rằng mỗi nhóm chữ số (nghĩa là các số được phân tách bằng dấu phẩy) là một hình vuông hoàn hảo.
Thách thức của bạn là, được đưa ra một số nguyên N không âm và Hàm hộp đen boolean đơn phương f : Z * → B , mang lại một giá trị trung thực nếu mỗi giá trị của f áp dụng cho các nhóm chữ số của N là trung thực và ngược lại.
Người ta có thể tìm thấy các nhóm chữ số bằng cách chia số thành các nhóm 3, bắt đầu từ phía bên phải. Nhóm ngoài cùng bên trái có thể có 1, 2 hoặc 3 chữ số. Vài ví dụ:
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)
Quy tắc bổ sung
- Hàm này có thể ánh xạ tới booleans (ví dụ
true
vàfalse
),1
s và0
s hoặc bất kỳ giá trị trung thực / falsey nào. Vui lòng xác định (các) định dạng được hỗ trợ bởi câu trả lời của bạn. - Bạn có thể lấy một số nguyên làm đầu vào hoặc một chuỗi số nguyên (nghĩa là một chuỗi gồm các chữ số).
- Bạn có thể viết một chương trình hoặc một chức năng.
- Khi chuyển các nhóm kỹ thuật số cho hàm f , bạn nên cắt tất cả các số 0 không cần thiết hàng đầu. Ví dụ: f , khi áp dụng cho N = 123.000 nên được thực thi là f (123) và f (0).
Các trường hợp thử nghiệm
Ký hiệu chức năng là n -> f(n)
, ví dụ , n -> n == 0
. Tất cả các toán tử giả định số học số nguyên. (Ví dụ 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
áp dụng 0
) vào các trường hợp kiểm tra vì hầu hết các câu trả lời đều thất bại.
[0]
.