第12周项目3 用递归方法求解(2)
2014-11-14 18:32
225 查看
问题描述:
(2)写出求 1*3*...*n 的递归式,并编写出递归函数求解。
代码:
运行结果:
知识点与学习心得:
要注意利用递归时候何时返回以及返回到的地方。
(2)写出求 1*3*...*n 的递归式,并编写出递归函数求解。
代码:
/* *copyright (c) 2014,烟台大学计算机学院 *all rights reserved. *文 件 名 : 递归解决问题系列.cpp *作 者 :张 鹏 *完成日期 :2014年11月14号 *版 本 号 :v1.1 * *问题描述 :写出求 1*3*...*n 的递归式,并编写出递归函数求解。 *输入描述 :一个正整数且为奇数。 *程序输出 :递归式和结果。 */ #include <iostream> //预处理指令。. using namespace std; //使用C++的命名空间 std。 long fac(int ); //声明自定义函数,用于求n的阶乘。 int main() { int n; //声明一个变量n位整型 cout<<" 欢迎使用递归式计算器"<<'\n'; cout<<"请输入一个奇数:" ; //输出汉字,使得界面更友好。 while (cin>>n) { while (n<=0||n%2==0) { cout<<"亲输入有误请重新输入:"; cin>>n; } cout<<"该数递归式等于:"<<fac(n)<<'\n'; cout<<"请按ctrl+z退出"<<'\n'; cout<<"继续使用,请输入数:"; } cout<<"非常感谢您的使用!祝您生活愉快,工作顺利。"; return 0; } long fac(int i) //自定义函数fac开始。 { long sum=1; //定义一个变量sum位整型并赋初值为1,sum代办阶乘。 if (i>0) { sum=i*fac(i-2); } else return 1; return sum; //返回阶乘的值。 }
运行结果:
知识点与学习心得:
要注意利用递归时候何时返回以及返回到的地方。
相关文章推荐
- 2014秋C++第12周项目3参考-用递归方法求解
- 第12周项目3-用递归方法求解-(1)
- 第12周项目3-用递归方法求解--求出两个数的最大公约数
- 第12周项目3-用递归方法求解(4)Fibnacci序列
- 第12周项目3-用递归方法求解-(4)
- 第12周项目3-用递归方法求解-(2)
- 第12周项目3-用递归方法求解(2)
- 第12周上机实践项目3——用递归方法求解(输出fibnacci数)
- 第12周项目3-用递归方法求解-(3)
- 第12周项目3-用递归方法求解(5)二进制
- 第12周上机实践项目3——用递归方法求解(求n的阶乘)
- 第12周 项目3-用递归方法求解(1)
- 第12周项目3 用递归方法求解(5、输出二进制数)
- 第12周项目3-用递归方法求解(3)求两个的最大公约数
- 第12周项目3-用递归方法求解(3)
- 第12周项目3 用递归方法求解(4)
- 第12周项目3 用递归方法求解(5)
- 第12周上机实践项目3——用递归方法求解(求两个数的最大公约数)
- 第12周项目3-用递归方法求解(1)n的阶乘
- 第12周项目3-用递归方法求解(3)