神奇!!!
查看原帖
神奇!!!
392935
qzhwDGS楼主2021/8/22 20:43

谁能告诉我为什么加个1就能过了呢?

代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int a[10]={1};//原本是 int a[10]={}; 就不行了 
int total=0;
int x;
void dfs(int k)
{
	for(int i=a[k-1];i<=x;i++)
	{
		if(i==n) return;
		a[k]=i;
		x-=i;
		if(x==0)
		{
			for(int j=1;j<k;j++)
			    printf("%d+",a[j]);
			printf("%d\n",a[k]);
		}
		else dfs(k+1);
		x+=i;
	}
}
int main()
{
	scanf("%d",&n);
	x=n;
	dfs(1);
	return 0;
}
2021/8/22 20:43
加载中...