您的位置:首页 > 其它

第十三周 用递归方法求奇数连乘的积

2013-11-20 16:54 323 查看
/*
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:尚振伟
*完成日期:2013年 11月20日
*版本号:v0.1
*对任务及求解方法的描述部分:
*输入描述:无
*问题描述:用递归方法求奇数连乘的积。
*程序输入:21
*程序输出:
*问题分析:
*算法设计: 递归
*/
我的程序:
#include <iostream>

using namespace std;

long f(int);     //声明一个函数

int main()
{
int n;
long y;
cout<<"请输入一个数:";
cin>>n;
y=f(n);
cout<<"1*3*5*...*"<<n<<"="<<y<<endl;
return 0;
}
long f(int n)     //定义上面声明的函数
{
long h;
if(n<0)      //下面判断n是否符合题意
{
cout<<"n<0,输入错误:"<<endl;
}
else if(n==0)
h=0;
else if(n==1)
h=1;
else if(n>=2&&n%2==0)      //输入的n的值必须是奇数
cout<<"n必须要是奇数,输入错误"<<endl;
else
h=f(n-2)*n;     //用递归方法计算
return h;
}

结果展示:



心得体会:输入一个大值,结果输出就不对,原因是long(int)型有数值范围。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: