当前位置: 首页 > news >正文

【时时三省】(C语言基础)函数的递归调用例题

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

例题:

用递归方法求n !。

解题思路:

求n !可以用递推方法,即从1开始,乘2,再乘3……一直乘到n。这种方法容易理解,也容易实现。递推法的特点是从一个已知的事实(如1 ! = 1)出发,按一定规律推出下一个事实(如2 ! = 1 ! * 2),再从这个新的已知的事实出发,再向下推出一个新的事实( 3 ! = 3 * 2 ! )。n ! = n * ( n-1 ) !。求n !也可以用递归方法,即5 !等于4 !×5,而4 ! = 3 !×4,.,1 ! = 1。可用下面的递归公式表示:n ! = 1 ( n = 0 , 1 ) n ! = n×( n-1 ) ! ( n > 1 )。

编写程序:

运行结果:

程序分析:

请注意每次调用fac函数后,其返回值f应返回到调用fac函数处,例如,当n =2时,从函数体中可以看到“f = fac ( 1 ) * 2”再调用fac ( 1 ),返回值为1。这个1就取代了“f = fac ( 1 ) * 2”中的fac ( 1 ),从而f = 1×2 = 2。其余类似。递归终止条件为n = 0或n = 1。

注意:

程序中的变量是int型,如果用Visual C++、GCC以及多数C编译系统为int型数据分配4个字节,能表示的最大数为2 147 483 647。如果输入13,企图求13 !,是得不到预期结果的,因为求出的结果超过了int型数据的最大值。可将f,y和fac函数定义为float或double型。

相关文章:

  • Python中质数筛选及优化效率对比
  • 【笔记】修改abu量化本地部署数据文件夹目录
  • Redis集群热点Key问题解决方案
  • HTML应用指南:利用GET请求获取全国罗森门店位置信息
  • 文本编辑器vi的使用
  • 2025年软件测试面试题,精选33道,附答案
  • 5月28日星期三今日早报简报微语报早读
  • SCDN如何同时保障网站加速与DDoS防御?
  • 【C++基础知识】匿名命名空间
  • 可视化数据大屏适配方案之Scale等比缩放
  • AI日报 - 2025年05月28日
  • 鸿蒙如何引入crypto-js
  • 麒麟系统QT打包程序问题
  • gtx的测试
  • 题目 3342: 蓝桥杯2025年第十六届省赛真题-红黑树
  • Android --- ObjectAnimator 和 TranslateAnimation有什么区别
  • 【部署】手搓一个dify可用的rerank模型接口服务
  • C++与Java类和对象的异同
  • vue3+element-plus项目主题色切换;element-plus换肤
  • uniapp-商城-74-shop(7-商品列表,选规格 添加商品到购物车)
  • 鸿鹄网站建设/惠州seo排名优化
  • 怎么样免费建设网站/如何制作视频网站
  • 房子如何上网站做民宿/无锡网站优化公司
  • 建设小游戏网站空间类型选择/seo优化前景
  • 长沙网站建设推广/西安seo优化培训
  • 网站关键字设置/域名注册查询