recursiveiterativetest.java

来自「java2 primer plus一书源程序」· Java 代码 · 共 32 行

JAVA
32
字号
public class RecursiveIterativeTest {
  public long factorialIterative( long n ) {
    long result = n;
    for( long i=n-1; i>0; i-- ) {
       result *= i;
    }
    return result;
  }

  public long factorialRecursive( long n ) {
    if( n == 1 ) return 1;
    return n * factorialRecursive( n-1 );
  }

  public static void main( String[] args ) {
    RecursiveIterativeTest test = new RecursiveIterativeTest();
    long memBefore = Runtime.getRuntime().freeMemory();
    long start = System.currentTimeMillis();
    System.out.println( "Iterative factorial 1000 = " + test.factorialIterative( 20 ) );
    long end = System.currentTimeMillis();
    long memAfter = Runtime.getRuntime().freeMemory();
    System.out.println( "Runtime: " + ( end - start ) + "ms, memory used=" + ( memAfter - memBefore ) );


    memBefore = Runtime.getRuntime().freeMemory();
    start = System.currentTimeMillis();
    System.out.println( "Recursive factorial 1000 = " + test.factorialRecursive( 20 ) );
    end = System.currentTimeMillis();
    memAfter = Runtime.getRuntime().freeMemory();
    System.out.println( "Runtime: " + ( end - start ) + "ms, memory used=" + ( memAfter - memBefore ) );
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?