Mở đầu:
Tôi muốn đào tạo các trường hợp thử nghiệm, vì vậy tôi sẽ thử chúng trên một cái gì đó dễ dàng.
Thử thách:
Lấy bất kỳ đầu vào (chuỗi) đã cho nào (trong phạm vi ASCII có thể nhìn thấy) và suy luận nếu đó là một số và xuất ra thứ gì đó có thể được sử dụng để đánh giá.
Quy tắc:
- Một số sẽ chỉ chứa các ký tự
-0123456789,.
- Câu trả lời chỉ được yêu cầu để nhận ra các số trong khoảng từ -1000000000 đến 1000000000 (độc quyền), nhưng có thể nhận ra các số lớn tùy ý.
- Bạn có thể viết một chương trình đầy đủ hoặc một chức năng.
- Nếu một số, trả về bất cứ thứ gì có thể được sử dụng để phân biệt nó và ghi lại đầu ra trong mô tả (ví dụ
My program outputs T if a number, F if not.
). - Đầu vào sẽ là bất kỳ số lượng ký tự nào trong phạm vi ASCII hoặc trống (nếu trống trả về bất cứ thứ gì bạn xuất nếu không phải là số).
- Các số có thể bao gồm một dấu thập phân (ví dụ
3.14
). Nếu họ làm như vậy, họ phải có ít nhất một chữ số trước dấu thập phân và ít nhất một chữ số sau nó. - Các số có thể có các số 0 đứng đầu hoặc cuối (ví dụ
000001.00000
). - Phần nguyên của một số có thể được chia để dễ đọc thành các phần có ba chữ số bằng dấu phẩy (ví dụ
1,000.23456
). Trong trường hợp này, họ phải được chia mỗi ba chữ số từ phải sang trái (ví dụ.1,234,567
,10,000.202
,123,234.00
,0,123.293
). - Số âm được chỉ định bởi một hàng đầu
-
(ví dụ-1.23
).+
Không được phép dẫn đến số dương, và sẽ dẫn đến kết quả đầu ra sai lệch. - Các ngoại lệ KHÔNG được tính là đầu ra hợp lệ và rõ ràng (trừ khi chúng có thể chuyển đầu ra cho luồng ra ngoài tiêu chuẩn (ví dụ:
Exception on line N [...]
có thể được đưa vào làm đầu ra cho một số / số không nếu chuỗi được đưa vào luồng ra ngoài tiêu chuẩn.
Các trường hợp thử nghiệm:
(giả sử My program outputs T if a number, F if not.
phiên bản)
123 -> T [on integer]
-123 -> T [negative numbers need to be handled]
0 -> T [on zero]
123.456 -> T [on floating point]
123,456.789 -> T [on evenly divided by 3 digits with comas]
123456789 -> T [thousand separators are not required]
0000001.00000 -> T [on leading/trailing zeros]
00.00 -> T [on zero and leading/trailing zeros]
999999999.9999999999999999999999999999999999999999999999999999 -> T [on close to the maximum value]
-999999999.9999999999999999999999999999999999999999999999999999 -> T [on close to the minimum value]
-> F [on empty]
lolz -> F [on non-number value]
n4melyh4xor -> F [on non-number with digits]
1.2 -> F [on space-padded]
9.3 1.3 -> F [on anyhow separated multiple numbers]
1e5 -> F [no scientific notation]
50cl05e.buty3ts0f4r -> F [on input with letters obscuring the number]
1,2,3,4.5678 -> F [on badly readability-divided number]
1,234.5,678 -> F [on readability-divided floating point part]
.234 -> F [on no leading zero]
+1 -> F [no leading + sign]
1.234.3 -> F [only one decimal point]
12345,678 -> F [on separator stopping mid-way]
code-golf , ít nhân vật nhất là người chiến thắng.
-123
ổn, còn về +456
-> tốt hay xấu. Hay là +
rời khỏi bữa tiệc?