[luoguP1010] 幂次方 ^(* ̄(oo) ̄)^

传送门

 

递归。。

 

代码

#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;
}

  

posted @ 2017-06-26 14:41  zht467  阅读(168)  评论(0编辑  收藏  举报