有人用递归吗?
查看原帖
有人用递归吗?
1328579
mairuisheng楼主2024/8/25 14:56
#include<cstdio>
int n,g,i;
int a[100001];
void split(int x)
{
	int k=1;
	while(k<x)k*=2;
	if(k>x)
	{
		a[++g]=k/2;
		split(x-k/2);
		return;
	}
	else if(k==x)
	{
		a[++g]=k;
		return;
	}
}
int main()
{
	scanf("%d",&n);
	if(n%2==1)
	{
		puts("-1");
		return 0;
	}
	split(n);
	for(i=1;i<=g;++i)printf("%d ",a[i]);
	return 0;
}
2024/8/25 14:56
加载中...