?? ex0830.for
字號:
PROGRAM ex0830
IMPLICIT NONE
INTEGER N
INTEGER fact
WRITE(*,*) 'N='
READ (*,*) n
WRITE(*, "(I2,'! = ',I8)" ) n, fact(n)
STOP
END
INTEGER FUNCTION ifact(n)
IMPLICIT NONE
INTEGER fact
INTEGER n
ifact = fact(n)
RETURN
END
INTEGER FUNCTION fact(n)
IMPLICIT NONE
INTEGER n
INTEGER count
INTEGER localcount, temp ! 局部變量
INTEGER ifact
EXTERNAL ifact
SAVE count
data count /1/
localcount = count
count = count+1
WRITE(6, 100) localcount, n
100 FORMAT(I2,'th enter, n=',I2)
IF ( n < 0 ) THEN ! 不合理的輸入
fact = -1 ! 隨便設定一個值
WRITE(6, 200) localcount, n, fact
RETURN ! n不合理, 直接return
ELSE IF ( n <= 1 ) THEN
fact = 1
WRITE(6, 200) localcount, n, fact
RETURN ! 不用再向下遞歸了, return
END IF
! 會執行到這, 代表n>1, 從n*(n-1)!來計算n!
temp = n-1
fact = n * ifact(temp) ! 調用ifact, ifact會直接再調用fact
WRITE(6, 200) localcount, n, fact
200 FORMAT(I2,'th exit, n=',I2, ' ans=',I8)
RETURN
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -