後,我在Fortran語言寫了這個程序來顯示Fibonacci數達x個期限:Fibonacci數變成負一定期限
program fibonacci
implicit none
integer :: x,p,c,i,t !initializes limit, previous, current, iterative, and temp
print *, "List the first x fibonacci numbers: "
read *, x !reads the limit
p=0 !sets previous to zero
c=1 !sets current to 1
do i=1,x
print *, c !prints the current fibonacci number
t = c !sets the temporary variable to the current
c = c + p !sets the current to the current plus the previous
p = t !sets the previous to the temporary value
end do !iterates until it reaches the limit 'x'
end program fibonacci
當我編譯並運行它,然後輸入號碼10,它作爲預期
List the first x fibonacci numbers:
10
1
1
2
3
5
8
13
21
34
55
但是當我進入50:
List the first x fibonacci numbers:
50
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
9227465
14930352
24157817
39088169
63245986
102334155
165580141
267914296
433494437
701408733
1134903170
1836311903
-1323752223
512559680
-811192543
-298632863
我不知道是什麼PROBL就我所知,他的邏輯是健全的。我的錯誤在哪裏?
我正在使用gfortran編譯器。
您需要比普通的舊'integer'更大的整數 - 請參閱http://stackoverflow.com/questions/2390395 – RichieHindle