包对
查看原帖
包对
1531398
FOGNEVERDIED楼主2024/10/22 20:57

第一个题解,不喜勿喷

#include <bits/stdc++.h>
using namespace std;
int a[16];
void f(int x)
{
	for(int i=15;i>=0;i--)
	{
		if(x>=a[i])
		{
			x-=a[i];
			if(i==0) printf("2(0)");
			else if(i==1) printf("2");
			else
			{
				printf("2(");
				f(i);
				printf(")");
			}
			if(x>0) cout<<"+";
		}
	}
}
int main()
{
	//freopen("power.in","r",stdin);
   //freopen("power.out","w",stdout);
   a[0]=1;
	for(int i=1;i<=15;i++) a[i]=a[i-1]*2;
	int n;
	cin>>n;
	f(n);
   //fclose(stdin);
   //fclose(stdout);
   return 0;
}
2024/10/22 20:57
加载中...