RosettaCodeData/Task/Ethiopian-multiplication/QuickBASIC/ethiopian-multiplication.basic
2026-04-30 12:34:36 -04:00

33 lines
570 B
Text

' Ethiopian multiplication
DECLARE FUNCTION Half% (A AS INTEGER)
DECLARE FUNCTION Doub% (A AS INTEGER)
DECLARE FUNCTION IsEven% (A AS INTEGER)
DIM X AS INTEGER, Y AS INTEGER, OutP AS INTEGER
X = 17
Y = 34
DO
PRINT X,
IF NOT (IsEven(X)) THEN
OutP = OutP + Y
PRINT Y
ELSE
PRINT
END IF
IF X < 2 THEN EXIT DO
X = Half(X)
Y = Doub(Y)
LOOP
PRINT " =", OutP
FUNCTION Doub% (A AS INTEGER)
Doub% = A * 2
END FUNCTION
FUNCTION Half% (A AS INTEGER)
Half% = A \ 2
END FUNCTION
FUNCTION IsEven% (A AS INTEGER)
IsEven% = (A MOD 2) - 1
END FUNCTION