#include<iostream> using namespace std; int Fibonacci(int n) { if(n<=2) return 1; else return Fibonacci(n-1)+Fibonacci(n-2); } int main() { int n; cin>>n; cout<<Fibonacci(n); return 0; }
我想问一下,为什么把 if 判断的条件(n<=2)改成(n==1||n==2)的画就会MLE呢? 蹲个大佬
我试了一下你说的问题 但是在我这里问题没有复现 我的提交如下
#include<iostream> using namespace std; int res(int n) { if(n==2||n==1) return 1; else return res(n - 1) + res(n - 2); } int main() { int n; cin >> n; cout << res(n) << endl; return 0; }
是我的问题 我重新试了一下 发现是之前我把||写成了&& ,当时没发现 qaq 感谢感谢
可以这么写
if(n<2) return n;
不行吧,这样的话无法满组前三项了吧
如果n的数据再大些,比如n<=10000000,那怎么做呢,膜拜大佬
!
会不会出现Memory Limit Exceeded
数据量小不会出现这种情况
我想问一下,为什么把 if 判断的条件(n<=2)改成(n==1||n==2)的画就会MLE呢? 蹲个大佬
我试了一下你说的问题 但是在我这里问题没有复现
我的提交如下
是我的问题 我重新试了一下 发现是之前我把||写成了&& ,当时没发现 qaq 感谢感谢
可以这么写
不行吧,这样的话无法满组前三项了吧
如果n的数据再大些,比如n<=10000000,那怎么做呢,膜拜大佬
!
会不会出现Memory Limit Exceeded
数据量小不会出现这种情况