手打的第一题dfs 感觉思路对了但是跑了一下只有40分 不知道是不是输出部分出了问题?求大佬指点(蒟蒻大哭
#include<iostream>
#include<cstdio>
using namespace std;
int n,ans=0;
int a[1000001][11];
int t[20];
void dfs(int dep,int sum)
{
if(sum==n&&dep==10)
{
for(int i=1;i<=10;i++)
a[ans][i]=t[i];
ans++;
return;
}
if(dep>10)
return;
else
{
for(int i=1;i<=3;i++)
{
t[dep]=i;
dfs(dep+1,sum+i);
}
}
}
int main()
{
cin>>n;
if(n<10)
{
cout<<"0"<<endl;
return 0;
}
dfs(0,0);
cout<<ans<<endl;
for(int i=0;i<=ans-1;i++)
{
for(int j=1;j<=9;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
)