这个因为要反复调用自己,所以时间很长,来到50的时候就要等好几秒才出结果,java还好了,同样的代码,python算38的时候就要等好久。
import java.util.Scanner;
public class studying {
private static long fibonacci(int n){
if(n==1||n==2)
return 1;
return fibonacci(n-1)+fibonacci(n-2);
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
System.out.println(fibonacci(n));
}
}
这个不用反复调用函数,可算到Java能表示的最大整数为止。
import java.util.Scanner;
public class studying {
private static long fibonacci(int n){
if(n==1||n==2)
return 1;
long a=1,b=1,temp=2;
for(int i=3;i<=n;i++){
temp=a+b;
a=b;
b=temp;
}
return temp;
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
System.out.println(fibonacci(n));
}
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有