首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

容易的c++程序

2012-10-30 
简单的c++程序#include iostreamusing namespace stdint fibonacci(int a){if(a1||a2){return 1}e

简单的c++程序
#include <iostream>

using namespace std;
int fibonacci(int a){
  if(a==1||a==2)
  {
  return 1;
  }
  else
  return (fibonacci(a-1)+fibonacci(a-2));

}
int main()
{
  int m;
  cin>>m;
  int fib=fibonacci(m);
  cout<<fib;
  return 0;
}
我写的斐波那契数列的函数 ,执行可以通过,为什么分步调试是永远也跳不出函数

[解决办法]
可以执行完。耐心点吧
[解决办法]
递归调用次数很多,计算次数也很多,即使你输入一个小的参数,也会调用很多次很多次,所以你就以为也跳不出来了吧。你这样写效率会非常低的
[解决办法]
有一点问题,要注意细节,请看下面代码:

C/C++ code
#include <iostream>using namespace std;int fibonacci(int a){    if (a < 0)    // 防止输入负数        return 0 ;    else if(a == 0 || a == 1)        return 1 ;    else        return (fibonacci (a - 1) + fibonacci (a - 2)) ;}int main(){    int m ;    cin >> m ;    cout << fibonacci (m) << endl ;    return EXIT_SUCCESS ;}
[解决办法]
因为你在使用递归,所以你没有注意到细节问题。你可以转到汇编语言处,你会发现在调用栈

热点排行