没什么本质错误(1)你的n是引用,你这样做会改变n本身的值建议你用形参f(intn)(2)没有考虑溢出,n!一般值都很大,你做好做一下判断,否者很容易溢出的比如n多少反回-1表示错误。你也可以用long行加大范围需要比较复杂的计算,一般公司面试题,考n!一个是看你会不会用递归,一个是看你考虑溢出了没。