• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

  • 联系
  • 订阅
  • 管理

View Post

组合问题 ZOJ 1089 Lotto

组合问题

Lotto
1 #include<iostream>
2  using namespace std;
3  int m;
4  int n = 6;
5 int b[13];
6 int c[13];
7 void combination(int, int);
8
9 int main()
10 {
11 int num;
12 //freopen("test.txt","r", stdin);
13 cin >> num;
14 while (num)
15 {
16 for (int i = 0; i < num; i++)
17 {
18 cin >> c[i];
19 }
20 m = num;
21 combination(0,0);
22 cin >> num;
23 if (num)
24 cout << endl;
25 }
26
27 return 0;
28 }
29
30 //计算组合数
31 //m个里面取6个出来
32 void combination(int i, int current)
33 {
34 if (i >= n)
35 {
36 for ( int j = 0; j < n; j++)
37 {
38 if (j == n-1)
39 cout << b[j];
40 else
41 cout << b[j] << " ";
42 }
43 cout << endl;
44 }
45 else
46 {
47 for (int j = current; j < m-n+i+1; j++)//这里j的上限做了优化,减小不必要的分枝
48 {
49 b[i] = c[j];
50 combination(i+1, j+1);
51 }
52 }
53 }

 

 

posted on 2010-09-10 16:31  sysuwhj  阅读(243)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3