C++函数的嵌套调用和递归调用学习教程

2020-01-06 13:48:52刘景俊

有了例4.10的基础,很容易写出本题的程序:

 

 
  1. #include <iostream>  using namespace std; 
  2. long fac(int);//函数声明  int main( ) 
  3. {  int n;//n为需要求阶乘的整数 
  4. long y; //y为存放n!的变量  cout<<"please input an integer :"; //输入的提示 
  5. cin>>n; //输入n  y=fac(n);//调用fac函数以求n! 
  6. cout<<n<<"!="<<y<<endl; //输出n!的值  return 0; 
  7. }  long fac(int n) //递归函数 
  8. {  long f; 
  9. if(n<0)  { 
  10. cout<<"n<0,data error!"<<endl; //如果输入负数,报错并以-1作为返回值  f=-1; 
  11. }  else if (n==0||n==1) f=1; //0!和1!的值为1 
  12. else f=fac(n-1)*n;//n>1时,进行递归调用  return f;//将f的值作为函数值返回 

运行情况如下:

 

 
  1. please input an integer:10↙  10!=3628800