Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我试图用c++;但是当我编译时,我得到了一个错误 当我尝试用C++递归算法计算斐波那契数列时,内存分配错误。我可以运行一个返回值为void的递归算法,但是当and int是返回值时,内存就会出现问题。有办法解决这个问题吗 #include <iostream> using namespace std; int fib(int start); int main() { int x,y; cout << "Enter a value for x: "; cin >> x; y = fib(x); cout << "Your product is: "; cout << y << endl; return 0; } int fib(int start){ if(start == 0 || start == 1){ return start; } return fib(start)*fib(start-1); } #包括 使用名称空间std; int fib(int start); int main() { int x,y; cout>x; y=fib(x); 问题是斐波那契函数不正确_C++_Recursion_Fibonacci - Fatal编程技术网 x; y=fib(x); 问题是斐波那契函数不正确,c++,recursion,fibonacci,C++,Recursion,Fibonacci" /> x; y=fib(x); 问题是斐波那契函数不正确,c++,recursion,fibonacci,C++,Recursion,Fibonacci" />

我试图用c++;但是当我编译时,我得到了一个错误 当我尝试用C++递归算法计算斐波那契数列时,内存分配错误。我可以运行一个返回值为void的递归算法,但是当and int是返回值时,内存就会出现问题。有办法解决这个问题吗 #include <iostream> using namespace std; int fib(int start); int main() { int x,y; cout << "Enter a value for x: "; cin >> x; y = fib(x); cout << "Your product is: "; cout << y << endl; return 0; } int fib(int start){ if(start == 0 || start == 1){ return start; } return fib(start)*fib(start-1); } #包括 使用名称空间std; int fib(int start); int main() { int x,y; cout>x; y=fib(x); 问题是斐波那契函数不正确

我试图用c++;但是当我编译时,我得到了一个错误 当我尝试用C++递归算法计算斐波那契数列时,内存分配错误。我可以运行一个返回值为void的递归算法,但是当and int是返回值时,内存就会出现问题。有办法解决这个问题吗 #include <iostream> using namespace std; int fib(int start); int main() { int x,y; cout << "Enter a value for x: "; cin >> x; y = fib(x); cout << "Your product is: "; cout << y << endl; return 0; } int fib(int start){ if(start == 0 || start == 1){ return start; } return fib(start)*fib(start-1); } #包括 使用名称空间std; int fib(int start); int main() { int x,y; cout>x; y=fib(x); 问题是斐波那契函数不正确,c++,recursion,fibonacci,C++,Recursion,Fibonacci,如果变量start恰好与0或1不同,则可以反复调用函数fib(start) return fib(start)*fib(start-1); 这将产生stackoverflow,因为函数正在无限地调用自身 另一方面,您不应该将这些值相乘,而是将其相加 return fib(n - 1) + fib(n - 2); 问题是斐波那契函数不正确 如果变量start恰好与0或1不同,则可以反复调用函数fib(start) return fib(start)*fib(start-1); 这将产生st

如果变量
start
恰好与0或1不同,则可以反复调用函数fib(start)

return fib(start)*fib(start-1);
这将产生stackoverflow,因为函数正在无限地调用自身

另一方面,您不应该将这些值相乘,而是将其相加

 return fib(n - 1) + fib(n - 2);

问题是斐波那契函数不正确

如果变量
start
恰好与0或1不同,则可以反复调用函数fib(start)

return fib(start)*fib(start-1);
这将产生stackoverflow,因为函数正在无限地调用自身

另一方面,您不应该将这些值相乘,而是将其相加

 return fib(n - 1) + fib(n - 2);
fib()
将无法正常工作, 请试试这个:

if(n == 0 || n == 1)
{
return n;
}
else
 return ( fib(n-1) + fib(n-2) );
fib()
将无法正常工作, 请试试这个:

if(n == 0 || n == 1)
{
return n;
}
else
 return ( fib(n-1) + fib(n-2) );

要了解发生了什么,我建议在上述答案中添加以下内容: 还允许您找到大O符号 #包括

using namespace std;

int fib(int n, int &count) {
    if (n == 0 || n == 1)
    {
        return n;
    }
    else
    {
        cout << "n: " << n << endl;
        count += 1;
        return (fib(n - 1, count) + fib(n - 2, count));
    }
}

int main()
{
    int count = 0;
    cout << fib(9, count) << endl;
    cout << "Parses Count : " << count << endl;
    cin.get();
   cin.ignore();
}
使用名称空间std;
整数fib(整数n、整数和计数){
如果(n==0 | | n==1)
{
返回n;
}
其他的
{

cout要了解发生了什么,我建议在上述答案中添加以下内容: 还允许您找到大O符号 #包括

using namespace std;

int fib(int n, int &count) {
    if (n == 0 || n == 1)
    {
        return n;
    }
    else
    {
        cout << "n: " << n << endl;
        count += 1;
        return (fib(n - 1, count) + fib(n - 2, count));
    }
}

int main()
{
    int count = 0;
    cout << fib(9, count) << endl;
    cout << "Parses Count : " << count << endl;
    cin.get();
   cin.ignore();
}
使用名称空间std;
整数fib(整数n、整数和计数){
如果(n==0 | | n==1)
{
返回n;
}
其他的
{

调用
fib(start)
时不能修改
start
,它应该如何达到1或0?获取有关内存分配的错误。请发布错误消息。如果调用
fib(2)
,会发生什么情况?它递归调用
fib(2)
,递归调用
fib(2)
,递归调用
fib(2)
,递归调用
fib(2) 
,这…对你的程序的健康不好。斐波那契的递归不是
fib(start)*fib(start-1)
,而是
fib(start-1)+fib(start-2)
。哦,我明白了。因为无限递归,你有一个非常适合这个站点的错误。你在调用
fib(start)时不修改
start
,它应该如何达到1或0?获取有关内存分配的错误。请发布错误消息。如果调用
fib(2)
,会发生什么情况?它递归调用
fib(2)
,递归调用
fib(2)
,递归调用
fib(2)
,这…对你的程序的健康不好。斐波那契的递归不是
fib(开始)*fib(开始-1)
,而是
fib(开始-1)+fib(开始-2)
。哦,我明白了。因为无限递归,你有一个非常适合这个站点的错误。。