41 lines
1.6 KiB
COBOL
41 lines
1.6 KiB
COBOL
Program-ID. Fibonacci-Sequence.
|
|
Data Division.
|
|
Working-Storage Section.
|
|
01 FIBONACCI-PROCESSING.
|
|
05 FIBONACCI-NUMBER PIC 9(36) VALUE 0.
|
|
05 FIB-ONE PIC 9(36) VALUE 0.
|
|
05 FIB-TWO PIC 9(36) VALUE 1.
|
|
01 DESIRED-COUNT PIC 9(4).
|
|
01 FORMATTING.
|
|
05 INTERM-RESULT PIC Z(35)9.
|
|
05 FORMATTED-RESULT PIC X(36).
|
|
05 FORMATTED-SPACE PIC x(35).
|
|
Procedure Division.
|
|
000-START-PROGRAM.
|
|
Display "What place of the Fibonacci Sequence would you like (<173)? " with no advancing.
|
|
Accept DESIRED-COUNT.
|
|
If DESIRED-COUNT is less than 1
|
|
Stop run.
|
|
If DESIRED-COUNT is less than 2
|
|
Move FIBONACCI-NUMBER to INTERM-RESULT
|
|
Move INTERM-RESULT to FORMATTED-RESULT
|
|
Unstring FORMATTED-RESULT delimited by all spaces into FORMATTED-SPACE,FORMATTED-RESULT
|
|
Display FORMATTED-RESULT
|
|
Stop run.
|
|
Subtract 1 from DESIRED-COUNT.
|
|
Move FIBONACCI-NUMBER to INTERM-RESULT.
|
|
Move INTERM-RESULT to FORMATTED-RESULT.
|
|
Unstring FORMATTED-RESULT delimited by all spaces into FORMATTED-SPACE,FORMATTED-RESULT.
|
|
Display FORMATTED-RESULT.
|
|
Perform 100-COMPUTE-FIBONACCI until DESIRED-COUNT = zero.
|
|
Stop run.
|
|
100-COMPUTE-FIBONACCI.
|
|
Compute FIBONACCI-NUMBER = FIB-ONE + FIB-TWO.
|
|
Move FIB-TWO to FIB-ONE.
|
|
Move FIBONACCI-NUMBER to FIB-TWO.
|
|
Subtract 1 from DESIRED-COUNT.
|
|
Move FIBONACCI-NUMBER to INTERM-RESULT.
|
|
Move INTERM-RESULT to FORMATTED-RESULT.
|
|
Unstring FORMATTED-RESULT delimited by all spaces into FORMATTED-SPACE,FORMATTED-RESULT.
|
|
Display FORMATTED-RESULT.
|