为何已经规定n=2就输出2,return,但是还是输出了
#include
using namespace std;
void f(int n){
if(n==2){
cout<<"2";
return;
}
if(n==0)return;
if(n==1){
cout<<"2(0)";
return;
}
int i=2,j=1;
while(n>=i){
i*=2;
j++;
}
i/=2;
j--;
n-=i;
if(n){//未被2整除
cout<<"2(";
f(j);
cout<<")+";
f(n);
}
else{//n被2整除
cout<<"2(";
f(j);
cout<<")";
return;
}
}
int main() {
int n;
cin>>n;
f(n);
}