正文

C++ 入门 第四章 4.10 函数的递归调用[例题2]2008-09-10 14:17:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/38184.html

分享到:

  例4.11 用递归方法求n!。 求n!可以用递推方法,即从1开始,乘2,再乘3……一直乘到n。 求n!也可以用递归方法,即5!=4!×5,而4!=3!×4,…,1!=1。可用下面的递归公式表示:  n!= 1 (n=0,1) n·(n-1)! (n>1) 有了例4.10的基础,很容易写出本题的程序: #include <iostream> using namespace std; long fac(int);                           //函数声明 int main( )  {int n;                                 //n为需要求阶乘的整数 long y;                                //y为存放n!的变量   cout<<″please input an integer :″;     //输入的提示                  cin>>n;                                //输入n   y=fac(n);                              //调用fac函数以求n!   cout<<n<<″!=″<<y<<endl;                //输出n!的值   return 0;  } long fac(int n)                          //递归函数 {long f;  if(n<0)   {cout<<″n<0,data error!″<<endl;       //如果输入负数,报错并以-1作为返回值    f=-1;}  else if (n==0||n==1) f=1;              //0!和1!的值为1 else f=fac(n-1)*n;                     //n>1时,进行递归调用  return f;                              //将f的值作为函数值返回 }   运行情况如下: please input an integer:10↙ 10!=3628800 许多问题既可以用递归方法来处理,也可以用非递归方法来处理。在实现递归时,在时间和空间上的开销比较大,但符合人们的思路,程序容易理解。

阅读(2977) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册