问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:n_.cpp
*作 者:单昕昕
*完成日期:2014年11月13日
*版 本 号:v1.0
*
*问题描述:求“1*3*5*...*n”的递归式。
*程序输出:“1*3*5*...*n”的递归式。
*/
#include <iostream>
using namespace std;
int facs(int n);
int main()
{
int n;
cout<<"请输入一个奇数:"<<endl; //题目的隐含条件是输入的数应为奇数
cin>>n;
cout <<facs(n)<< endl; //调用函数输出计算结果
return 0;
}
int facs(int n)
{
int m;
if(n%2==0)
cout<<"请检查输入并重新输入一个奇数"<<endl;
else
{
if(n==1) //n为1的时候函数结束
m=1;
else if(n==3)
m=3;
else
m=n*facs(n-2); //根据题目的规则使用递归函数
}
return (m);
}
运行结果:
知识点总结:
利用递归函数求解。
学习心得:
和求阶乘几乎一致,只是最后调用函数的参数稍微改变了一点点。