递归的简单思路
查看原帖
递归的简单思路
1172013
we_R楼主2023/11/30 12:08

数据不是很强好像没被hack掉

#include<cstdio>
void dfs(int n,int mi) {
	if(n<=0) {
		return;
	}
	dfs(n>>1,mi+1);
	if(n&1) {
		if(n>1)
			printf("+");
		if(mi!=1) {
			printf("2(");
			if(mi>0)
				dfs(mi,0);
			else
				printf("0");
			printf(")");	
		}else {
			printf("2");
		}
	}
	return;
}
int main() {
	int n;
	scanf("%d",&n);
	dfs(n,0);
	return 0;
}

对于任何一个数,先深搜索,搜到最大的幂次,则不用 + 号,然后输出幂次,记得加几个特判。

2023/11/30 12:08
加载中...