谁能告诉我为什么加个1就能过了呢?
代码:
#include<bits/stdc++.h>
using namespace std;
int n;
int a[10]={1};
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;
}