斐波那契数列(要求执行时间小于1秒)
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。(n<=39)
提示:要用到动态规划,否则无法达成执行时间的限制
代码如下:
import java.util.Scanner;
public class 斐波那契数列 {
public static int f(int n) {
if(n==0) {
return 0;//初始值为0
}
if(n==1) {
return 1;//定义f(1)为1,否者结果都是0;
}
int result=0;
int r1 = 0;
int r2 = 1;
for(int i = 2;i<=n; i++) {//斐波那契数列求解f(n)
result = r1+r2;
r1=r2;
r2=result;
}
return result;//返回结果
}
public static void main(String[] args) {
System.out.println("请输入一个不超过39的整数:");
Scanner s=new Scanner(System.in);//从键盘输入
int n;
n=s.nextInt();
double startTime=System.currentTimeMillis();
System.out.println(f(n));
double endTime=System.currentTimeMillis();
System.out.println("执行时间:"+(endTime-startTime)+"ms");//测试时间
}
}
输出如图: