题目:
请用程序分别实现递和归迭代算法。
 
答:
== 递归 ==
 
/**
*    
*/

package com.test;

/**
* @author daniel
*
*/

public class CallSelf {

  /**
    * @param args
    */

  public static void main(String[] args) {
    // int
    int number=4;
    // call sum    
    System.out.println("sum("+number+")="+sum(number));
    // call getFactorial
    System.out.println("getFactorial("+number+")="+getFactorial(number));
  }

  /**
    * sum up an number to 1
    * @param x
    * @return
    */

  public static int sum(int x){
    //break
    if(x<=0){
      return x;
    }
    //call self & sum up
    int total=x+sum(x-1);
    return total;
  }
    
  public static int getFactorial(int x){
    //condition
    if(x==1){
      return 1;
    }
    //call self & get factorical
    return x*getFactorial(x-1);
  }
}
 
== 迭代 ==
/*    
         * 斐波那契方法 采用迭代方法解决    
         * @param n 要求的那项位置    
         * @return    结果    
         */
    
        public static int    feibo(int n)        
        {        
                    int    start1 = 1;        
                    int start2 = 1;        
                    for(int i = 2; i < n; i++)        
                    {        
                             int temp = start1+start2;        
                             start1 = start2;        
                             start2 = temp;        
                                    
                    }        
                    return start2;        
        }