Comment detail
変形Fizz-Buzz問題 (Nested Flatten)ELSEは無しでよろしくです。 僕もCOBOLはわかりませんがループをスキップするというのと ELSEを使うのは別の話だと思うので。
お題の一部が飛んでしまっていました。すみません。書き直してみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | IDENTIFICATION DIVISION.
PROGRAM-ID. FIZZ-BUZZ.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 I PIC 9(2) VALUE 0.
01 DIV PIC 9(2) VALUE 0.
01 REM PIC 9(2) VALUE 0.
01 EDIT PIC Z9.
01 SKIP PIC 9 VALUE 0.
PROCEDURE DIVISION.
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 20
DIVIDE I BY 15 GIVING DIV REMAINDER REM
IF REM = 0 THEN
MOVE I TO EDIT
DISPLAY EDIT ":FizzBuzz"
MOVE 1 TO SKIP
END-IF
DIVIDE I BY 3 GIVING DIV REMAINDER REM
IF REM = 0 AND SKIP = 0 THEN
MOVE I TO EDIT
DISPLAY EDIT ":Fizz"
MOVE 1 TO SKIP
END-IF
DIVIDE I BY 5 GIVING DIV REMAINDER REM
IF REM = 0 AND SKIP = 0 THEN
MOVE I TO EDIT
DISPLAY EDIT ":Buzz"
MOVE 1 TO SKIP
END-IF
IF SKIP = 0 THEN
MOVE I TO EDIT
DISPLAY EDIT ":hoge"
END-IF
MOVE 0 TO SKIP
END-PERFORM
STOP RUN.
|




nantan #3934() [ COBOL ] Rating-2/2=-1.00[open]
IDENTIFICATION DIVISION. PROGRAM-ID. FIZZ-BUZZ. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 I PIC 9(2) VALUE 0. 01 DIV PIC 9(2) VALUE 0. 01 REM PIC 9(2) VALUE 0. 01 EDIT PIC Z9. PROCEDURE DIVISION. PERFORM VARYING I FROM 1 BY 1 UNTIL I > 20 DIVIDE I BY 15 GIVING DIV REMAINDER REM IF REM = 0 THEN MOVE I TO EDIT DISPLAY EDIT ":FizzBuzz" ELSE DIVIDE I BY 3 GIVING DIV REMAINDER REM IF REM = 0 THEN MOVE I TO EDIT DISPLAY EDIT ":Fizz" ELSE DIVIDE I BY 5 GIVING DIV REMAINDER REM IF REM = 0 THEN MOVE I TO EDIT DISPLAY EDIT ":Buzz" ELSE MOVE I TO EDIT DISPLAY EDIT ":hoge" END-IF END-IF END-IF END-PERFORM STOP RUN.Rating-2/2=-1.00-0+
1 reply [ reply ]