เขียนฟังก์ชั่นหรือโปรแกรมที่สามารถทำได้ง่าย ๆ ทางคณิตศาสตร์ (การบวกการลบการคูณและการหาร) ในทั้งฐาน 10 และฐาน 2
ฟังก์ชั่นจะรับนิพจน์ทางคณิตศาสตร์เป็นอินพุตและเอาต์พุตผลลัพธ์ที่ถูกต้องในฐานที่ถูกต้อง อินพุตจะเป็นn
ตัวเลขคั่นด้วยตัวดำเนินการหนึ่งหรือหลายตัว ( + - * /
)
หากค่าอินพุตทั้งหมดมีเพียง 0 และ 1 ค่าทั้งหมดจะถือว่าเป็นไบนารี ถ้าอย่างน้อยหนึ่งหลักคือ2-9
ค่าทั้งหมดจะถือว่าเป็นฐาน 10
กฎ:
- คุณสามารถสมมติว่าจะมีผู้ให้บริการเพียงรายเดียวระหว่างหมายเลข (
10*-1
จะไม่ปรากฏขึ้น) - คุณสามารถสรุปได้ว่าจะไม่มีวงเล็บ
- ผู้ปฏิบัติงานปกติมาก่อน (ลองใช้นิพจน์ในเครื่องคิดเลขของ Google หากคุณมีข้อสงสัย)
- คุณไม่สามารถสรุปได้ว่าจะมีจำนวนเต็มเท่านั้น
- จะไม่มีเลขศูนย์นำหน้าในอินพุตหรือเอาต์พุต
- คุณสามารถสันนิษฐานได้ว่าป้อนข้อมูลที่ถูกต้องเท่านั้น
- คุณสามารถสมมติว่าค่าอินพุตทั้งหมดเป็นค่าบวก (แต่ตัวดำเนินการลบอาจทำให้เอาต์พุตเป็นลบได้
1-2=-1
และ10-100=-10
) - ไม่รับ REPL
- คุณอาจเลือกที่จะใช้การป้อนข้อมูลที่เป็นข้อโต้แย้งที่แยกต่างหากหรือเป็นอาร์กิวเมนต์เดียว แต่การป้อนข้อมูลที่มีอยู่ในลำดับที่ถูกต้อง
- เช่นคุณอาจจะเป็นตัวแทน
1-2
ที่มีการขัดแย้งการป้อนข้อมูล1
,-
,2
แต่ไม่1
, ,2
-
- เช่นคุณอาจจะเป็นตัวแทน
- คุณต้องยอมรับสัญลักษณ์
+ - * /
ในการป้อนข้อมูลที่ไม่ได้plus
,minus
ฯลฯ - คุณต้องรองรับค่าเลขทศนิยม (หรือมากถึงขีด จำกัด สูงสุดของภาษาของคุณ แต่ไม่รองรับเฉพาะจำนวนเต็ม)
eval
ได้รับการยอมรับ
ตัวอย่าง:
1+1
10
1010+10-1
1011
102+10-1
111
1+2+3
6
10*10*10
1000
11*11*11
11011
10*11*12+1
1321
10.1*10.1
110.01
20.2*20.2
408.04
10/5
2
110/10
11
Also accepted (optional line or comma-separated input):
10
+
10
-
1
11 <-- This is the output
นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ
110/10
เป็น11.0
ที่ยอมรับ?