public static int judge(int i){ if(i==1) return 1; else return i*judge(i-1); } 上面的代码是错误的,返回值为int.正确的代码为: public static long factorial(int i){ if(i==1) return 1; else return i*factorial(i-1); }