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 nrakam faktoradik sayısının maksimum değerine sahip olabileceği anlamına gelir (n + 1)!.
Örneğin, faktoradik sayıyı 24201ondalı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ı 24201olduğu 349nokta 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 349taban 10faktoradik 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- 3628799ondalık ve 987654321factoradic 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'!'∊⍵.