实在想不出来了
查看原帖
实在想不出来了
1040902
Takanashi_Hina楼主2023/10/11 19:15
#include<iostream>
using namespace std;
int a[114],n,ans,cxk[114514][11];
void dfs(int last,int k)
{
	if(k>10&&last==n)
	{
		ans++;
		for(int i=1;i<=10;i++)
	  	  cxk[ans][i]=a[i];
		return ;
	}
	for(int i=1;i<=3;i++)
	{
		if(last+i>n)  break;
		a[k]=i;
		dfs(last+i,k+1);
	}
}
int main()
{
	cin>>n;
	if(n<10||n>30)
	{
		cout<<0;
		return 0;
	}
	dfs(0,1);
	cout<<ans<<endl;
	for(int i=1;i<=ans;i++)
	{
		for(int j=1;j<=10;j++)
		  cout<<cxk[i][j]<<" ";
		cout<<endl;
	}
	return 0;
}

为什么会多出来好多答案。

太菜了。求。

2023/10/11 19:15
加载中...