【发布时间】:2014-03-02 09:31:01
【问题描述】:
我有这段代码用于计算python 中的fibonacci 数字。它有效并给出了预期的结果。但是当我把它翻译成Java时,它失败了。知道这里出了什么问题吗?
在python:
def fib3(n):
a,b=0,1
while n>0:
a,b=b,a+b
n-=1
return a
fib3(12) --> 144
在Java:
public static int fib2(int n){
int a = 0;
int b =1;
while(n-- >0){
a=b;
b=a+b;
}
return a;
}
fib2(12) --> 2048
【问题讨论】:
-
这可能与
a=b行在计算下一行a + b之前更改了a的值有关。 -
与 python 或 java 无关。同样在 python 中
a = b; b = a+b将无法按预期工作。