自定义了一个函数,但是主函数用到这个函数,输出结果就啥也没有
#include
using namespace std;
int han(int a,int b,int n){
int sum=0;
if(n==1)
sum=a;
if(n==2)
sum=b;
else
sum=han(a,b,n-1)+han(a,b,n-2);
return sum;
}
int main(){
int a=han(1,2,3);
cout<<a;
return 0;
}
没有报错,但啥也没有输出
怎么样可以输出结果,为啥不会输出?
这是递归函数,死循环了吧
if(n==2)改为else if(n==2)
否则当n=1时,还是会执行 sum=han(a,b,n-1)+han(a,b,n-2);的
int han(int a,int b,int n){
int sum=0;
if(n==1)
sum=a;
else if(n==2)
sum=b;
else
sum=han(a,b,n-1)+han(a,b,n-2);
return sum;
}
int main(){
int a=han(1,2,3);
cout<<a;
return 0;
}
因为你第二个if没有写成else if
导致只要n不等于2,就会继续递归
那么你最初n=3
递归时分别进入n=2和n=1,
n=2时返回b
n=1时不满足条件,无限递归
#include
using namespace std;
int han(int a,int b,int n){
int sum=0;
if(n==1)
sum=a;
else if(n==2)//这里少了个else
sum=b;
else
sum=han(a,b,n-1)+han(a,b,n-2);
return sum;
}
int main(){
int a=han(1,2,3);
cout<<a;
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!