Latar Belakang
Anda baru-baru ini disewa oleh perusahaan akuntansi kecil. Dunia akuntansi agak asing bagi Anda, jadi Anda tidak yakin apakah Anda mengikuti semua pedoman profesional. Secara khusus, Anda tidak tahu kapan Anda harus membulatkan semua angka-angka itu, dan ke arah mana, sehingga sebagian besar waktu Anda hanya sayap itu dan berharap untuk yang terbaik.
Memasukkan
Input Anda adalah string tunggal yang mewakili perhitungan sederhana. Ini berisi beberapa bilangan bulat non-negatif yang dibatasi oleh karakter +-*/
. String membaca dari kiri ke kanan, dan aturan diutamakan normal diabaikan, jadi "23+1*3/4"
berarti "mulai dengan 23, tambahkan 1, kalikan dengan 3, dan bagi dengan 4", hasilnya adalah 18. Input tidak akan berisi angka yang dimulai dengan 0
(kecuali 0
dirinya sendiri), atau pembagian dengan nol.
Keluaran
Pada setiap tahap perhitungan, Anda dapat membulatkan hasil ke atas atau ke bawah ke bilangan bulat terdekat, atau menyimpannya apa adanya. Akhirnya, Anda membulatkan ke atas atau ke bawah untuk mendapatkan hasil bilangan bulat. Output Anda adalah daftar bilangan bulat yang mungkin dihasilkan dari perhitungan seperti itu, diurutkan dan tanpa duplikat.
Aturan
Anda dapat menulis program lengkap atau fungsi. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji Kasus
"42" -> [42]
"2+0+4-0" -> [6]
"23+1*3/4" -> [18]
"5/2" -> [2,3]
"5/2+7/3*6-1" -> [17,18,19,23]
"23/2/2*30-170/3" -> [-7,-6,-2,-1,0,1,3,4]
"1/3*2*2*2*2*2*2" -> [0,16,20,21,22,24,32,64]
"1/3*9" -> [0,3,9]
1/3*9
, yang mungkin gagal jika Anda menggunakan angka floating point.