好玩的递递递递归归归归

左脑攻击右脑,过载代替思考  •  11个月前


#include<bits/stdc++.h>
using namespace std;
int m,v[21];
void hs(int n){
	int flag=0,i;
	for(i=m;i>=0;i--){
		if(v[i]<=n){
			n=n-v[i];
			if(flag==0){
				flag=1;
			}else{
				cout<<"+";
			}
			if(i>1){
				cout<<"2(";
				hs(i);
				cout<<")";
			}
			if(i==1){
				cout<<"2";
			}
			if(i==0){
				cout <<"2(0)";
			}
		}
	}
}
int main(){
	int n=0;
	cin>>n;
	m=0;
	v[0]=1;
	while(v[m]<n){
		m++;
		v[m]=v[m-1]*2;
	}
	hs(n);
	return 0;
}

评论:

请先登录,才能进行评论