#include<iostream>
using namespace std;
int n,kind=0,m1[10000][10],m2[10];
void peiliao(int total,int a){
if (a==10){
if (total==n) {
for (int j=0;j<10;j++) m1[kind][j]=m2[j];//符合要求存起来~~
kind++;
}
}
else if (total>=n) ;//小小优化一下
else
for (int i=1;i<=3;i++){
m2[a]=i;
peiliao(total+i,a+1);//其实这和十连for没什么区别。。。
}
}
int main(){
cin>>n;
peiliao(0,0);
cout<<kind<<endl;
for (int j=0;j<kind;j++){
for (int i=0;i<10;i++) cout<<m1[j][i]<<" "; //大家一定要记得打空格...
cout<<endl;
}
return 0;
}
P2089 烤鸡
最新推荐文章于 2024-09-19 13:36:34 发布
该篇文章详细描述了一个C++程序,其中定义了一个名为peiliao的函数,用于动态填充一个二维数组。程序通过递归和条件判断优化了数组填充的过程。主要关注点是算法实现和性能提升。
摘要由CSDN通过智能技术生成