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 的空间,有点危险
全部评论

相关推荐

这一集&nbsp;硕士输的很惨
找工作ing10:就是这样不是硕士不愿意脱下长衫,是人家觉得屈才了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务