public class test 
{
   private static int n=100;
   private static int m=100;
   public static void main ( String args []){
     
      m=mul(n);
      System.out.println(m);
      System.out.println(n);
    
    } 
    
   public static int mul(int a){
      if (a==0) return 1;
      else return a*mul(a-1);
  }
    
}但把m,n 改为10,10就好了 (好像主要是n 的问题)
望指点一二

解决方案 »

  1.   

    是你的数据类型的问题,你的程序主要是求n!如果求100的话int是不够的,建议用double
    public class test 
    {
       private static double n=100;
       private static double m=100;
       public static void main ( String args []){
         
          m=mul(n);
          System.out.println(m);
          System.out.println(n);
        
        } 
        
       public static double mul(double a){
          if (a==0) return 1;
          else return a*mul(a-1);
      }
        
    }
      

  2.   

    你把 INT 都 改成 double  的 就 好了啊
    100!=9.3326215443944152681699238856267e+157int   -2147483648   ----------2147483647范围