问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:test.cpp
*作 者:陈文青
*完成日期:2014年11月16日
*版 本 号:v1.0
*
*问题描述:写出求1*3*...*n的递归式,并编写出递归函数求解。
*程序输入:一个整数,n
*程序输出:一个长整型 y,表示n以内的奇数积
*/
#include <iostream>
using namespace std;
long f(int n); //自定义函数
int main( )
{
int n;
long y;
cout<<"请输入一个整数 :";
cin>>n;
if(n%2)
y=f(n);
else //若为偶数,则需要减一后进行计算
y=f(n-1);
cout<<n<<"以内的奇数积为:"<<y<<endl;
return 0;
}
long f(int n) //自定义函数
{
long s;
if (n==1)
s=1;
else
s=f(n-2)*n; //递归调用
return s;
}
运行结果:
知识点总结:
利用递归函数解决数学问题
学习心得:
编程的时候要考虑严谨,0和1都要考虑到,然后就是等号==和赋值=一定要注意!!!!