printf("%ld",longf(n));改成printf("%ld",f(n));把f(n)看成long型的数字就行了因为系统只认识这种格式。。如果你一定要写long也可以改成printf("%ld",(long)f(n));