Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
52
Task/Factorial/QB64/factorial-1.qb64
Normal file
52
Task/Factorial/QB64/factorial-1.qb64
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
REDIM fac#(0)
|
||||
Factorial fac#(), 655, 10, power#
|
||||
PRINT power#
|
||||
SUB Factorial (fac#(), n&, numdigits%, power#)
|
||||
power# = 0
|
||||
fac#(0) = 1
|
||||
remain# = 0
|
||||
stx& = 0
|
||||
slog# = 0
|
||||
NumDiv# = 10 ^ numdigits%
|
||||
FOR fac# = 1 TO n&
|
||||
slog# = slog# + LOG(fac#) / LOG(10)
|
||||
FOR x& = 0 TO stx&
|
||||
fac#(x&) = fac#(x&) * fac# + remain#
|
||||
tx# = fac#(x&) MOD NumDiv#
|
||||
remain# = (fac#(x&) - tx#) / NumDiv#
|
||||
fac#(x&) = tx#
|
||||
NEXT
|
||||
IF remain# > 0 THEN
|
||||
stx& = UBOUND(fac#) + 1
|
||||
REDIM _PRESERVE fac#(stx&)
|
||||
fac#(stx&) = remain#
|
||||
remain# = 0
|
||||
END IF
|
||||
NEXT
|
||||
|
||||
scanz& = LBOUND(fac#)
|
||||
DO
|
||||
IF scanz& < UBOUND(fac#) THEN
|
||||
IF fac#(scanz&) THEN
|
||||
EXIT DO
|
||||
ELSE
|
||||
scanz& = scanz& + 1
|
||||
END IF
|
||||
ELSE
|
||||
EXIT DO
|
||||
END IF
|
||||
LOOP
|
||||
|
||||
FOR x& = UBOUND(fac#) TO scanz& STEP -1
|
||||
m$ = LTRIM$(RTRIM$(STR$(fac#(x&))))
|
||||
IF x& < UBOUND(fac#) THEN
|
||||
WHILE LEN(m$) < numdigits%
|
||||
m$ = "0" + m$
|
||||
WEND
|
||||
END IF
|
||||
PRINT m$; " ";
|
||||
power# = power# + LEN(m$)
|
||||
NEXT
|
||||
power# = power# + (scanz& * numdigits%) - 1
|
||||
PRINT slog#
|
||||
END SUB
|
||||
4
Task/Factorial/QB64/factorial-2.qb64
Normal file
4
Task/Factorial/QB64/factorial-2.qb64
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
N = 18: DIM F AS DOUBLE ' Factorial.bas from Russia
|
||||
F = 1: FOR I = 1 TO N: F = F * I: NEXT: PRINT F
|
||||
'N = 5 F = 120
|
||||
'N = 18 F = 6402373705728000
|
||||
Loading…
Add table
Add a link
Reference in a new issue