Faktoriális számítás

Üdv,

sajnos nem nagyon értek a prologhoz, a segítségetekre lenne szükségem.

Adott egy kis kódrészlet, ami kiszámítja egy szám faktoriálisát. Ez a része rendben van, miután megjött az eredmény szeretném egy listaként bejárni, ezzel viszont sajnos nem boldogulok.

Faktoriális számítás:

fakt(0, 1).
fakt(N, F) :- N>0, N1 is N-1, fakt(N1, F1), F is N*F1.

Mondjuk 10re a következő output-t kapom.

fakt(10,L).
L = 3628800

Tehát ezt az L értéket szeretném karakterekre szedve bejárni, ha tudnátok valami kiindulási pontot adni azt megköszönném.

Hozzászólások

csak én nem értem, hogy pontosan mit szeretne a kérdező?

karakterekre szedve = 3 6 2 8 8 0 0 pl?

Ha jol ertem, akkor L az egy szam.

Akkor ennek egyes helyiertekeit ugy a legegyszerubb megkapni, ha osztod a helyiertekkel.
Szoval az elso karaktert ugy kapod meg, hogy egesz osztast vegzel a szamon itt pl. 1000000-val.

Ha jol latom, akkor az igy nez ki prologban:
L // 1000000
L // 100000
L // 10000
...

Ui.:
Csak egy otlet, lehet rosszra gondoltam.

a lényeg hogy erőlteted a c-szerűséget, _utasítást_ adsz hogy járd be, aztán meg te majd kezdesz valamit a lépésekkel, itt meg máshogy kell gondolkodni

kell az amit lehagytál, az a _kijelentés_ a lényeg hogy mi a helyzet a bejáráskor, tehát ugyanúgy ahogy ott van fakrotiálisnál:

ha a lista egyelemű (tíztől kisebb a szám) akkor meg van a válasz, ha meg nem, akkor a mod10 értékéhez lesz hozzáadva a div10-re vett ugyanilyen összeg

sum(N, S) :- N<10, S is N.
sum(N, S) :- N1 is N//10, sum(N1, S1), S is N%10+S1.

vagy valami ilyesmi