33 lines
990 B
COBOL
33 lines
990 B
COBOL
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. Ackermann.
|
|
|
|
DATA DIVISION.
|
|
LINKAGE SECTION.
|
|
01 M USAGE UNSIGNED-LONG.
|
|
01 N USAGE UNSIGNED-LONG.
|
|
|
|
01 Return-Val USAGE UNSIGNED-LONG.
|
|
|
|
PROCEDURE DIVISION USING M N Return-Val.
|
|
EVALUATE M ALSO N
|
|
WHEN 0 ALSO ANY
|
|
ADD 1 TO N GIVING Return-Val
|
|
|
|
WHEN NOT 0 ALSO 0
|
|
SUBTRACT 1 FROM M
|
|
CALL "Ackermann" USING BY CONTENT M BY CONTENT 1
|
|
BY REFERENCE Return-Val
|
|
|
|
WHEN NOT 0 ALSO NOT 0
|
|
SUBTRACT 1 FROM N
|
|
CALL "Ackermann" USING BY CONTENT M BY CONTENT N
|
|
BY REFERENCE Return-Val
|
|
|
|
SUBTRACT 1 FROM M
|
|
CALL "Ackermann" USING BY CONTENT M
|
|
BY CONTENT Return-Val BY REFERENCE Return-Val
|
|
END-EVALUATE
|
|
|
|
GOBACK
|
|
.
|