我的代码
#include<iostream>
using namespace std;
int n,a[50],mem[50][50];
int ad,cnt;
void dfs(int u){
if(u>10){
int sum=0;
for(int i=1;i<=10;i++){
sum+=a[i];
}
if(sum==n){
ad=1;
cnt++;
for(int i=1;i<=10;i++){
mem[cnt][i]=a[i];
}}
return;
}
a[u]=1;
dfs(u+1);
a[u]=2;
dfs(u+1);
a[u]=3;
dfs(u+1);
}
int main(){
cin>>n;
dfs(1);
if(ad==0){
cout<<"0";return 0;}
cout<<cnt<<endl;
for(int i=1;i<=cnt;i++){
for(int j=1;j<=10;j++){
cout<<mem[i][j]<<" ";
}
cout<<endl;
}
}