The faktorial Number System , juga disebut factoradic, adalah sistem radix angka campuran. Faktorial menentukan nilai tempat suatu angka.
Dalam sistem ini, digit paling kanan bisa 0 atau 1, digit paling kanan kedua bisa 0, 1 atau 2, dan seterusnya. Ini berarti bahwa nangka faktoradik digit dapat memiliki nilai maksimum (n + 1)!.
Misalnya, untuk mengonversi angka faktoradik 24201menjadi desimal, Anda akan melakukan ini:
2 * 5! = 240
4 * 4! = 96
2 * 3! = 12
0 * 2! = 0
1 * 1! = 1
240 + 96 + 12 + 0 + 1 = 349
Oleh karena itu angka faktoradik 24201adalah 349basa 10.
Untuk mengonversi angka desimal (dengan 349sebagai contoh) menjadi angka faktoradik, Anda akan melakukan ini:
Ambil faktorial terbesar kurang dari jumlah. Dalam hal ini 120, atau 5!.
349 / 5! = 2 r 109
109 / 4! = 4 r 13
13 / 3! = 2 r 1
1 / 2! = 0 r 1
1 / 1! = 1 r 0
Karenanya 349basis 10adalah angka faktoradik 24201.
Tantangan Anda adalah membuat program atau fungsi terpendek yang mengubah nomor input ke basis lain.
Input akan berupa representasi string dari integer non-negatif. Angka faktoradik akan didahului oleh !(mis. !24201), Sedangkan angka desimal tidak akan didahului oleh apa pun. Anda dapat berasumsi bahwa input maksimum adalah 10! - 1- 3628799dalam desimal dan 987654321faktoradik. Ini berarti bahwa huruf tidak akan muncul dalam input / output faktoradik.
Program tidak perlu menambahkan sebuah !ke keluaran faktoradik, dan dapat menampilkan string atau integer. Masukan mungkin dalam format yang masuk akal.
Kasus uji:
Input: 1234
Output: 141120
Input: 746
Output: 101010
Input: !54321
Output: 719
Input: !30311
Output: 381
⍴⍵∩'!'dengan'!'∊⍵untuk menyimpan karakter.