Newer
Older
langhist-study / src / fz2.f
@HIROSE Yuuji HIROSE Yuuji on 31 Oct 2019 890 bytes Add source files initially
!
!  FizzBuzz	FizzBuzz判定を文字列で返す関数を作成した例
!  参考: http://hydro.iis.u-tokyo.ac.jp/~agata/doc/program_semi/semi7.html
      PROGRAM main
      CHARACTER A*8, fizzbuzz*8			! 先にFUNCTIONの型を宣言
      WRITE(*,'(A)', advance='no') 'FizzBuzz to N? : '
      READ(*,*) N
      DO 10 I=1,N
         A=fizzbuzz(I)
         IF (LGT(A, '')) THEN
            WRITE(*,'(A8A)', advance='no') A, ', '
         ELSE
            WRITE(*,'(I3A)', advance='no') I, ', '
         ENDIF
 10   CONTINUE
      END PROGRAM main

      CHARACTER FUNCTION fizzbuzz(n)
      fizzbuzz = ''
      IF (MOD(n,3) .EQ. 0) THEN			! MOD(N,M)で余り
         fizzbuzz = 'Fizz'
      ENDIF
      IF (MOD(n,5) .EQ. 0) THEN
         !ans = trim(fizzbuzz)//'Buzz'
         fizzbuzz = trim(fizzbuzz)//'Buzz'	! trim()しないと空白が残る
      ENDIF
      END FUNCTION fizzbuzz