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

32 lines
694 B
Text

100 REM Ethiopian multiplication
110 DECLARE FUNCTION Half
120 DECLARE FUNCTION Doub
130 DECLARE FUNCTION IsEven
140 LET X = 17
150 LET Y = 34
160 DO
170 PRINT USING "###### ":X;
180 IF IsEven(X) = 0 THEN
190 LET OutP = OutP + Y
200 PRINT USING "######":Y
210 ELSE
220 PRINT
230 END IF
240 IF X < 2 THEN EXIT DO
250 LET X = Half(X)
260 LET Y = Doub(Y)
270 LOOP
280 PRINT USING " = ######": OutP
290 END
300 REM
310 EXTERNAL FUNCTION Doub(A)
320 LET Doub = A * 2
330 END FUNCTION
340 REM
350 EXTERNAL FUNCTION Half(A)
360 LET Half = INT(A / 2)
370 END FUNCTION
380 REM
390 EXTERNAL FUNCTION IsEven(A)
400 LET IsEven = MOD(A, 2) - 1
410 END FUNCTION