为什么我的c运行速度这么慢?
黑框出现后 先缓上好几秒才会出现字然后执行,执行速度肯定不用讲,毋庸置疑,就是黑框出现后半天啥字也没有!
后台也没有任何的杀毒软件之类的
#include <iostream>
int fibonacci(int n) {
if (n <= 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int numTerms;
std::cout << "请输入斐波那契数列的项数:";
std::cin >> numTerms;
std::cout << "斐波那契数列的前 " << numTerms << " 项为:";
for (int i = 0; i < numTerms; ++i) {
std::cout << fibonacci(i) << " ";
}
std::cout << std::endl;
return 0;
}
这位同学深夜还在学习辛苦了,根据你修改的问题,原回答已删除,我看了下你的代码,运行速度慢的问题可能是由于递归计算斐波那契数列造成的。递归方式在计算较大的斐波那契数时会存在大量重复计算,导致效率低下,也就是经常听过的算法时间度的问题。我这个代码其实是搬运的你的,在你的基础上做了一小点优化(优化部分我加了注释,希望这样更清晰点)
简单来说,用了一个循环来计算斐波那契数列,避免了递归中的重复计算,从而提高了程序的执行效率。你可以尝试运行修改后的代码,看看是否能够改善运行速度。我这边运行效率正常,你这边试试那?