public int getResult(int i)
{   
    if(i > 1)
    {
       return i* getResult(i-1);
     }
    return 1;         
}

解决方案 »

  1.   

    不好意思
    将 int --- > double 
    太大了:)
      

  2.   

    MessageBox.Show(getResult(100).ToString());
    3628800
      

  3.   

    我估计10000的阶乘long也溢出了吧.
      

  4.   

    如果不想溢出,哪你就只有自己重载*法运算符,把你传入参数定为string,然后按字符计算
      

  5.   

    private     int    jiecheng(int  m)
    {   if   (i>1)
        return   i*jiecheng(i-1);
    return  1;}
      

  6.   

    public int  jc(int i)
    {   
        if(i > 1)
        {
           return i* jc(i-1);
         }
        return 1;         
    }