Skip to content

Instantly share code, notes, and snippets.

@y-taka-23
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save y-taka-23/0bf32488b4bc259599af to your computer and use it in GitHub Desktop.
Save y-taka-23/0bf32488b4bc259599af to your computer and use it in GitHub Desktop.
CodeIQ「第 5 回デスマコロシアム」の固定形式 COBOL 85 による実装
IDENTIFICATION DIVISION.
PROGRAM-ID. DEATH-MARCH-05.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 FB-STR PIC X(153).
77 CNT PIC 9(2) VALUE 1.
77 QUOT PIC 9(2).
77 REM-3 PIC 9(1).
77 REM-5 PIC 9(1).
77 STR-IDX PIC 9(3) VALUE 1.
PROCEDURE DIVISION.
MAIN SECTION.
PERFORM VARYING CNT FROM 1 BY 1 UNTIL CNT > 50
DIVIDE CNT BY 3 GIVING QUOT REMAINDER REM-3
DIVIDE CNT BY 5 GIVING QUOT REMAINDER REM-5
EVALUATE REM-3 ALSO REM-5
WHEN 0 ALSO 0
MOVE "FIZZBUZZ" TO FB-STR(STR-IDX:8)
ADD 8 TO STR-IDX
WHEN 0 ALSO ANY
MOVE "fizz" TO FB-STR(STR-IDX:4)
ADD 4 TO STR-IDX
WHEN ANY ALSO 0
MOVE "buzz" TO FB-STR(STR-IDX:4)
ADD 4 TO STR-IDX
WHEN OTHER
IF CNT >= 10 THEN
MOVE CNT TO FB-STR(STR-IDX:2)
ADD 2 TO STR-IDX
ELSE
MOVE CNT(2:1) TO FB-STR(STR-IDX:1)
ADD 1 TO STR-IDX
END-IF
END-EVALUATE
END-PERFORM.
DISPLAY FB-STR.
STOP RUN.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment