fortran66のブログ

fortran について書きます。

Problem 15

_{40}C_{20}パスカルの三角形で求めます。4バイト整数ではオーバーフローします。

ソース・プログラム

    program PEuler015
      implicit none
      integer, parameter :: ki = selected_int_kind(15),  n = 20
      integer :: i
      integer(ki), allocatable :: ipascal(:)
      ipascal = [1]
      do i = 1, 2 * n
        ipascal= [0_ki, ipascal] + [ipascal, 0_ki]
      end do
      print *, ipascal(n + 1) ! Pascal's triangle
      stop
    end program PEuler015

実行結果

137846528820
続行するには何かキーを押してください . . .