p2089烤鸡,模拟,数据存储
这个题目就是烦在先要说出总数,再把具体数据打出来
所以在遍历的时候用个二维数组存好数据
然后得到总数后吧二维数组打出来
#include <bits/stdc++.h>
using namespace std;
int sum=0;
int n;
int num[10000][10],cnt,res[10];
void find(int a){
if(sum>n) return;
if(a==10){
if(sum==n){
for(int i=0;i<10;i++) num[cnt][i]=res[i];
cnt++;
}
}else{
for(int i=1;i<=3;i++){
sum+=i;
res[a]=i; find(a+1);
sum-=i;
}
}
}
int main(int argc, char** argv) {
cin>>n;
if(n<10||n>30) cout<<0<<endl;
else{
find(0);
cout<<cnt<<endl;
for(int i=0;i<cnt;i++){
for(int j=0;j<10;j++){
printf("%d ",num[i][j]);
}
puts("");
}
}
return 0;
} 测试数据显示我有个用了1mb 的空间,有点危险
格力公司福利 356人发布