Tulis fungsi atau program daripada yang dapat dilakukan aritmatika sederhana (penjumlahan, pengurangan, penggandaan, dan pembagian) dalam basis 10 dan basis 2.
Fungsi akan mengambil ekspresi matematis sebagai input, dan mengeluarkan hasil yang benar di basis yang benar. Input akan menjadi n
angka yang dipisahkan oleh satu atau beberapa operator ( + - * /
).
Jika semua nilai input hanya berisi 0 dan 1, semua nilai dianggap biner. Jika setidaknya satu digit 2-9
, semua nilai dianggap sebagai basis 10.
Aturan:
- Anda dapat mengasumsikan hanya akan ada satu operator di antara angka (
10*-1
tidak akan muncul) - Anda dapat mengasumsikan tidak akan ada tanda kurung.
- Diutamakan operator normal (coba ekspresi dalam kalkulator google jika Anda ragu).
- Anda tidak dapat mengasumsikan hanya akan ada bilangan bulat
- Tidak akan ada angka nol di depan dalam input atau output
- Anda dapat mengasumsikan hanya input yang valid yang akan diberikan
- Anda dapat mengasumsikan semua nilai input positif (tetapi operator minus dapat membuat output negatif menjadi mungkin,
1-2=-1
dan10-100=-10
) - REPL tidak diterima
- Anda dapat memilih untuk mengambil input sebagai argumen yang terpisah, atau sebagai argumen tunggal, tetapi input memiliki berada di urutan yang benar.
- Yaitu Anda dapat mewakili
1-2
dengan argumen input1
,-
,2
, tapi tidak1
,2
,-
.
- Yaitu Anda dapat mewakili
- Anda harus menerima simbol
+ - * /
dalam input, bukanplus
,minus
dll. - Anda harus mendukung nilai floating point (atau hingga batas maksimum bahasa Anda, namun hanya bilangan bulat yang mendukung tidak diterima).
eval
diterima
Contoh:
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
Ini adalah kode golf, jadi kode terpendek dalam byte akan menang.
110/10
, apakah11.0
dapat diterima?