第13週は再帰の方法で奇数の連乗の積を求めます

1336 ワード

/*           
*            :           
*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)型には数値範囲があるからです.