Faktoriyel Sayı Sistemi ayrıca factoradic denilen, karışık sayı tabanı rakamı sistemidir. Faktörler, bir sayının yer değerini belirler.
Bu sistemde, en sağdaki hane 0 veya 1 olabilir, en sağdaki ikinci hane 0, 1 veya 2 olabilir, vb. Bu, bir n
rakam faktoradik sayısının maksimum değerine sahip olabileceği anlamına gelir (n + 1)!
.
Örneğin, faktoradik sayıyı 24201
ondalık sayıya dönüştürmek için şunu yapardınız :
2 * 5! = 240
4 * 4! = 96
2 * 3! = 12
0 * 2! = 0
1 * 1! = 1
240 + 96 + 12 + 0 + 1 = 349
Bu nedenle factoradic sayı 24201
olduğu 349
nokta 10
.
Ondalık bir sayıyı ( 349
örnek olarak) faktoradik bir sayıya dönüştürmek için şunu yaparsınız:
Sayıdan daha büyük olan en büyük faktörü alın. Bu durumda 120
, ya da 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
Dolayısıyla 349
taban 10
faktoradik sayıdır 24201
.
Buradaki zorluk, bir giriş numarasını diğerine dönüştüren en kısa programı veya işlevi oluşturmaktır.
Giriş, negatif olmayan bir tamsayının dizgi gösterimi olacaktır. Faktoradik bir sayının önünde bir !
(örneğin !24201
), ondalık sayısında hiçbir şey olmaz. Maksimum giriş olacağını varsayabiliriz 10! - 1
- 3628799
ondalık ve 987654321
factoradic içinde. Bu, harflerin faktoradik bir girdi / çıktıda görünmeyeceği anlamına gelir.
Programın !
faktoradik bir çıktıya hazırlanmasına gerek yoktur ve bir dize veya tamsayı üretebilir. Giriş herhangi bir makul formatta olabilir.
Test durumları:
Input: 1234
Output: 141120
Input: 746
Output: 101010
Input: !54321
Output: 719
Input: !30311
Output: 381
⍴⍵∩'!'
onunla değiştirebileceğini düşünüyorum'!'∊⍵
.