Fortran Coder

查看: 1118|回复: 2
打印 上一主题 下一主题

[求助] 递归求n!阶乘

[复制链接]

1967

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1370 元
贡献
581 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2023-8-6 17:00:56 | 显示全部楼层
没问题呀,主程序里面有 n,不影响子程序里面有 n 的。你的代码我这里运行毫无问题。

尽管你的代码没有问题,但有一些语句没有必要。帮你注释出来。

[Fortran] 纯文本查看 复制代码
program recursive_test
    implicit none
    INTEGER :: n
    interface
      RECURSIVE INTEGER function fact(n)! result(ans)
        !LOGICAL :: count 不必要
        INTEGER :: n
      end function fact
    end interface
    write (*, "('N = ', I3)")
    read (*, *) n
    write (*, "(I3, '! = ', I8)") n, fact(n)
    ! stop 不必要
  end program recursive_test

  RECURSIVE INTEGER function fact(n) result(ans)
    implicit none
    INTEGER :: n
    !LOGICAL :: count
    if (n < 0) then
      ans = -999
      !count = .false.
      !return
    else if (n <= 1) then
      ans = 1
      !count = .true.
      !return
    else
      ans = n*fact(n - 1)      
    end if
    !return
  end function fact
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-13 14:20

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表