0
我需要知道,我的溢出算法有什麼問題?在Fortran中,我必須執行一種算法,以在返回溢出中斷時返回增量「n」的數量。Fortran溢出算法
program overflow
integer::n,i,fact;
fact = 1;
n = 50;
do i=1,n,1
fact=fact*i;
if ((fact==abs(fact)).and.(fact /= 0)) then
print*,"F!=",fact;
n=n+1;
!print*,"Overflow=",n;
end if;
end do;
print*,n;
end program overflow
它包含負值,而「突變」的階乘之前到達,意思是「溢出」的數量,但它是假的,正應該是15
可能重複的[在Fortran中捕獲整數異常](http://stackoverflow.com/questions/18881865/catch-integer-exceptions-in-fortran) –
有趣的是,我們知道你不能*計數溢出會否定的,但是它不應該在它的時候捕獲它嗎? – agentp