递归函数没有响应

时间:2014-03-06 21:24:21

标签: c++ recursion

# include <iostream>

using namespace std;

class mm
{    
private:
    int k[1000];
    int n;
    int i;
    int a;
    int b;
    int f;

public:
    mm ()
    {
        a=0;
        b=1;
        f=0;
        i=0;
        for(int i=0; i<n;i++)
            k[i]=0;
    };

   ~mm()
   {
   }

    void fib(int n)
    {
        for (int i=0;i<n;i++)
        {
            if (i<=1)
                f=i;
            else
            {
                f=a+b;
                a=b;
                b=f;
            }
              k[i]=f;
        }

        for (int j=0;j<n;j++)
            cout<<k[j]<<" ";
    }

    int se (int n, int i)
    {
        if (n==1)
        return 1;
        else
        return 1/k[i] + se (n-1, i+1);
    }
};

int main()
{
    int n;
    cout<<"Enter n:";
    cin>>n;
    mm p;
    cout<<"fib: "<<endl;
    p.fib(n);
    cout<<endl;
    cout<<"se: ";
    cout<<p.se(n,0);
    return 0;
}

main的递归函数没有响应。也许数组k[i]不起作用,但我找不到原因。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

k [0]设置为0.然后在main中调用se(n,0)时,它计算1 / k [0] + se(n-1,1),它除以零。< / p>