C++ 递归函数没有响应 #包括 使用名称空间std; mm类 { 私人: int k[1000]; int n; int i; INTA; int b; int f; 公众: 嗯() { a=0; b=1; f=0; i=0; for(int i=0;i

C++ 递归函数没有响应 #包括 使用名称空间std; mm类 { 私人: int k[1000]; int n; int i; INTA; int b; int f; 公众: 嗯() { a=0; b=1; f=0; i=0; for(int i=0;i,c++,recursion,C++,Recursion,k[0]被设置为0。当你在main中调用se(n,0)时,它会计算1/k[0]+se(n-1,1),这是一个0的除法。mmmm。你说“不响应”到底是什么意思?数组“不工作”是什么意思也是?你试过调试它吗?你没有在mmi的构造函数中为n设置默认值。我已经将所有斐波那契值存储在一个数组k[1000]中,然后我尝试在这个“返回1/k[i]+se(n-1,i+1)”中使用该数组对于1+1/1+1/2+1/3+1/5+……系列。此外,您应该只使用向量来存储这些0。如果用户给出的数字高于1000,该怎么办?

k[0]被设置为0。当你在main中调用se(n,0)时,它会计算1/k[0]+se(n-1,1),这是一个0的除法。

mmmm。你说“不响应”到底是什么意思?数组“不工作”是什么意思也是?你试过调试它吗?你没有在mmi的构造函数中为n设置默认值。我已经将所有斐波那契值存储在一个数组k[1000]中,然后我尝试在这个“返回1/k[i]+se(n-1,i+1)”中使用该数组对于1+1/1+1/2+1/3+1/5+……系列。此外,您应该只使用
向量
来存储这些0。如果用户给出的数字高于1000,该怎么办?
# 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;
}