传送门

 

递归。。

 

#include <cstdio>

int n;
int bit[15];

inline void solve(int x)
{
	int i, f = 0;
	if(!x)
	{
		printf("0");
		return;
	}
	for(i = 14; i >= 0 && x; i--)
		if(x >= bit[i])
		{
			printf("2");
			if(i ^ 1) printf("("), solve(i), printf(")");
			x -= bit[i];
			if(x) printf("+");
		}
}

int main()
{
	int i;
	bit[0] = 1;
	for(i = 1; i <= 14; i++) bit[i] = bit[i - 1] << 1;
	scanf("%d", &n);
	solve(n);
	return 0;
}

  

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-17
  • 2021-10-06
  • 2021-12-05
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-30
  • 2022-12-23
  • 2021-11-19
  • 2022-12-23
  • 2022-12-23
  • 2021-12-30
相关资源
相似解决方案