A - Lotto

来源:互联网 发布:php erp系统 编辑:程序博客网 时间:2024/04/25 15:07

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1089

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int vis[24],n,a[24];void dfs(int pp,int qq){int i,j;if(qq==6){for(i=1;i<=n;i++){if(vis[i]==1){printf("%d",a[i]);break;}}for(j=i+1;j<=n;j++)if(vis[j]==1)printf(" %d",a[j]);printf("\n");return ;}for(i=pp+1;i<=n;i++){if(vis[i]==0){//printf("%d ",i);vis[i]=1;dfs(i,qq+1);}vis[i]=0;}return ;}int main(){int i,sum;sum=0;while(scanf("%d",&n)!=EOF){if(n==0)break;if(sum>0)printf("\n");for(i=1;i<=n;i++)scanf("%d",&a[i]);for(i=1;i<=n-6+1;i++){memset(vis,0,sizeof(vis));vis[i]=1;dfs(i,1);}sum++;}return 0;}


题意:输入一个数n,之后输入n个数,从中任意选出6个数,将所有的情况都表示出来。

注意点:题目要求每一个样例后都都输入一个空行,但是最后一个例子不要输。

解决方法:可以用一个变量(sum)来记录你输入了几个样例,当这个变量大于0时,就在开始时输入换行。



0 0
原创粉丝点击