为什么将高数字传递给递归功能会使我的控制台停止响应
Why does passing high number to a function with recursion makes my console stop responding?
int summation(int x) {
if(x > 0) {
return x += summation(x-1);
}
return x;
}
该功能可与较小的值一起工作,但接近100万,它压碎了我的控制台。
cout << summation(1000000);
我很好奇为什么会发生。
递归存在这个问题。对于每个调用,程序必须将数据保存在堆栈中。因此,当数字如此之大时,保存的数据也很大。您可能会在代码中看到堆叠的问题。
相关文章:
- 询问在设计我的手臂模拟器功能表示格式1
- 反向功能超出了我的 cpp 程序的范围
- 为什么我的功能在使用 goto 时会给我带来"expected primary-expression before '}' token"?
- 为什么我的打印功能不起作用?链表
- 为什么我的显示功能会终止程序?
- "configure"脚本如何检测我的系统是否支持某些头文件或 cpp 功能?
- 如何使我的 cmake 项目所需的某些 c++ 功能
- 为什么我的删除功能总是出现分段错误
- 如何改进我的"String"对象比较功能
- 使用链表.为什么我的插入功能不起作用?
- 我的显示功能有问题
- 为什么我的打印功能之一删除节点
- 为什么我的删除功能中存在错误
- 如果我使用此功能,我的控制台崩溃
- 如何将此功能连接到我的连接按钮?
- 我的模板功能具有通用引用不起作用
- 我的班级功能的分段故障
- 我的朋友功能无法访问私人变量
- C //尝试重写一个工作代码以包括我的功能
- 尽管我的功能和cout语句的放置错误,但我的程序为什么会起作用