2017年12月06日のツイート

Fortran版FizzBuzz

FizzBuzz 6日目です。学生時代にパンチカードでプログラムした古き良き(←良いとは思ってない)経験を思い出し、FORTRAN66 で古臭いプログラムを……と思っていたのですが、さすがにその時代のコンパイラはないみたいです。「行番号」とか「6文字目は継続」とかやってみたかったのに!

character a*8
do i=1,100
  a = ""
  if (mod(i,3).eq.0) then
    a(1:4) = "Fizz"
  end if
  if (mod(i,5).eq.0) then
    a(5:8) = "Buzz"
  end if
  if (len_trim(adjustl(a)).eq.0) then
    print '(I0)',i
  else
    print '(A)',adjustl(a)
  end if
end do
stop
end

※参考→ ideone.com

それにしても、今の FORTRAN は随分変わっていて、昔の面影がほとんどないですね。いつから予約語の前後にスペースが必要になったのか……