1 REM Ins{nd av Guido Petz <1098> 1987-03-30 11.21.54 (SEND) 10 ! Guido Petz 1098, 1986 20 ! ABC800-806, BASICII-kortet 30 ! N}gra funktioner rekursivt definierade och ber{knade! 40 ! I allm{nhet g}r det fortare att ber{kna funktionerna iterativt! 50 ; CHR$(12) 'Rekursivt ber{knade funktioner!' : ; STRING$(31,61) : ; 60 ; 'Fakulteter (1-82):' : ; STRING$(18,45) : ; "FNF$('50')=" FNF$('50') : ; 70 ; 'St|rste gemensamme delaren (max. 124 siffror):' : ; STRING$(47,45) 80 ; "FNS$('1111111111'";',';"'33333')=" FNS$('1111111111','33333') : ; 90 ; 'Ackermanns funktion:' : ; STRING$(20,45) : ; "FNA%(3,2)=" FNA%(3,2) : ; 100 ; 'Antal partitioner av M med st|rsta summand N:' : ; STRING$(45,45) 110 ; "FNP(33";",";"3)=" FNP(33,3) : ; : ; : ; : ; 120 ! Fakulteter 130 DEF FNF$(A$) 140 IF A$='1' RETURN '1' ELSE RETURN MUL$(A$,FNF$(SUB$(A$,'1',0%)),0) 150 FNEND 160 ! St|rsta gemensamme delaren 170 DIM A$,N$,M$=124 180 DEF FNS$(N$,M$) 190 IF M$='0' RETURN N$ ELSE A$=DIV$(N$,M$,20%) 200 RETURN FNS$(M$,SUB$(N$,MUL$(LEFT$(A$,LEN(A$)-21%),M$,0%),0%)) 210 FNEND 220 ! Partition av heltal 230 DEF FNP(M%,N%) 240 IF M%=1% OR N%=1% RETURN 1% ELSE IF M%<=N% RETURN FNP(M%,M%-1%)+1% 250 RETURN (FNP(M%,N%-1%)+FNP(M%-N%,N%)) 260 FNEND 270 ! Ackermann's funktion 280 DEF FNA%(M%,N%) 290 IF M%=0% RETURN N%+1% ELSE IF N%=0% RETURN FNA%(M%-1%,1%) 300 RETURN FNA%(M%-1%,FNA%(M%,N%-1%)) 310 FNEND