#include<iostream>
using namespace std;
long fac(int n=5);//声明带默认参数的递归函数
int main()//理解默认实参
{
	int m;
	cout<<"Please input an integer:"<<endl;//输出提示语
	cin>>m;
	cout<<"5! = "<<fac()<<endl;//第一次调用，没有给出实参，使用默认实参
	cout<<m<<"! = "<<fac(m)<<endl;//第二次调用，实参m将覆盖默认实参
	return 0;
}
long fac(int n)//求阶乘的递归函数定义
{
	long f=0;
	if(n<0)
	{
		cout<<"n<0,data error!"<<endl;
	}
	else if(n==0||n==1)
		f=1;
	else
		f=fac(n-1)*n;
	return f;
}