上计算机实验的老师和我们原来的JAVA老师不是一个人,给出的实验题答案很多都不明白,也没学过相应代码,请各位指点。
public class FibonacciTest
{
public static void main(String[] args)
{
int n = 0;
try
{
n = Integer.parseInt(args[0]);
}
catch (Exception e) {
System.err.println("ERROR, ENTER THE VALUE OF N");
System.exit(1);
}
FibonacciIterative fi = new FibonacciIterative();
FibonacciRecursive fr = new FibonacciRecursive();
FibonacciDynamic fd = new FibonacciDynamic();
long start = System.currentTimeMillis();
System.out.println(fi.fibonacci(n));
long end = System.currentTimeMillis();
long total = end - start;
System.out.println("Time taken F-I = "+ total);
start = System.currentTimeMillis();
System.out.println(fr.fibonacci(n));
end = System.currentTimeMillis();
total = end - start;
System.out.println("Time taken F-R = "+ total);
start = System.currentTimeMillis();
System.out.println(fd.fibonacci(n));
end = System.currentTimeMillis();
total = end - start;
System.out.println("Time taken F-D = "+ total);
}
}

解决方案 »

  1.   

    //主调用程序
    public class FibonacciTest
    {
    //程序运行开始点
    public static void main(String[] args)
    {
    int n = 0;
    try
    {
    //读取命令行第一个参数,并赋值给N,如果不是整数,捕获异常,程序退出
    n = Integer.parseInt(args[0]);
    }
    catch (Exception e) {
    System.err.println("ERROR, ENTER THE VALUE OF N");
    System.exit(1);
    }
    //创建一个FibonacciIterative 对象
    FibonacciIterative fi = new FibonacciIterative();
    //创建一个FibonacciRecursive对象
    FibonacciRecursive fr = new FibonacciRecursive();
    //创建一个FibonacciDynamic对象
    FibonacciDynamic fd = new FibonacciDynamic();
    //获取开始时间
    long start = System.currentTimeMillis();
    //计算fibonacci
    System.out.println(fi.fibonacci(n));
    //获取结束时间
    long end = System.currentTimeMillis();
    //计算调用fibonacci(n)的时间
    long total = end - start;
    System.out.println("Time taken F-I = "+ total);
    start = System.currentTimeMillis();
    System.out.println(fr.fibonacci(n));
    end = System.currentTimeMillis();
    total = end - start;
    System.out.println("Time taken F-R = "+ total);
    start = System.currentTimeMillis();
    System.out.println(fd.fibonacci(n));
    end = System.currentTimeMillis();
    total = end - start;
    System.out.println("Time taken F-D = "+ total);
    }
    }
      

  2.   

    楼上说的很详细了
    代码整体上来说是一个带参数的命令行Java程序,
    将参数转为int n型后,计算对应斐波那契数列的第n个数值,并输出计算耗时多少毫秒
    中间那三个new的对象应该是其他地方写的吧,JDK里边好像没有,我的1.5的没有