鳳鳴は祖父の俳号

日記 メモ そんなの

FORTRAN77でFizzBuzz

http://ideone.com/QW36m
 FORTRAN77縛りでFizzBuzz。gfortran使用。(brew install gfortran)

1      FORMAT ( I1 )
2      FORMAT ( I2 )
3      FORMAT ( I3 )
4      FORMAT ( 8HFizzBuzz )
5      FORMAT ( 4HFizz )
6      FORMAT ( 4HBuzz )
       DO I = 1,100
           IF ( MOD(I,3) .EQ. 0 ) THEN
               IF ( MOD(I,5) .EQ. 0 ) THEN
                   WRITE (6,4)
               ELSE
                   WRITE (6,5)
               END IF
           ELSE
               IF ( MOD(I,5) .EQ. 0 ) THEN
                   WRITE (6,6)
               ELSE
                   IF ( I .LT. 10 ) THEN
                       WRITE (6,1) I
                   ELSE
                       IF ( I .LT. 100 ) THEN
                           WRITE (6,2) I
                       ELSE
                           WRITE (6,3) I
                       END IF
                   END IF
               END IF
           END IF
       END DO
       END

 こう書いてもOK:

1      FORMAT(I1)
2      FORMAT(I2)
4      FORMAT(8HFizzBuzz)
5      FORMAT(4HFizz)
6      FORMAT(4HBuzz)
       DOI=1,100
       IF(MOD(I,3).EQ.0)THEN
       IF(MOD(I,5).EQ.0)THEN
       WRITE(6,4)
       ELSE
       WRITE(6,5)
       ENDIF
       ELSEIF(MOD(I,5).EQ.0)THEN
       WRITE(6,6)
       ELSEIF(I.LT.10)THEN
       WRITE(6,1)I
       ELSEIF(I.LT.100)THEN
       WRITE(6,2)I
       ELSE
       WRITE(6,*)I
       ENDIF
       ENDDO
       END

参考:
http://www.hiroshima-cu.ac.jp/japanese/IPC/hunet99/sun/WorkShop/ja/html_docs/fortran/f77rm/index.html
Language - Using and Porting GNU Fortran