本帖最后由 jiangshun 于 2009-11-13 19:10:03 编辑

解决方案 »

  1.   

    对于所谓的正确答案提出质疑private double getNum(int n)
    {
    if(i==1)
    {
      return 1;
    }
    else if(i>1)
    {
      return getNum(n-1)+1/n;
    } 参数是int也就是说
    假设参数n=2
    1/2结果是0
    同意1/3,1/4等等都是的
    也就是说结果等效于1/1=1结果永远都是1
    用递归返回int类型固然没错
    但是最总目的肯定不是那个1所以....
      

  2.   

    decimal Add(int i)
    {
        if (i == 1)
            return 1m;
        else
           return 1m / i + Add(i - 1);
    }
      

  3.   


    参数是int i;
    而返回的方法却是decimal类型的?????
      

  4.   

    也可使用double 型,倒数肯定不是int型
      

  5.   


    是啊,但是传入的参数是int类型的啊,返回的却不是
      

  6.   

    private double getNum(int n) 

    if(i==1) 

      return 1; 

    else if(i>1) 

      return getNum(n-1)+1.0/n;