标题:NYOJ上的题目:组合数
取消只看楼主
Theblueman
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2018-3-11
结帖率:60%
已结贴  问题点数:20 回复次数:1 
NYOJ上的题目:组合数
找出从自然数1、2、... 、n(0<n<10)中任取r(0<r<=n)个数的所有组合。
按特定顺序输出所有组合。
特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。


他给的答案没有一点注释,我根本看不懂啊!!!
程序代码:
#include<algorithm>
#include<iterator>
#include<iostream>
using namespace std;
int selected[10];
int data[]={10,9,8,7,6,5,4,3,2,1};
void myfind(int start,int step,int M,int N)
{
    
    
    if(step==N) {
    copy(selected,selected+N,ostream_iterator<int>(cout,""));
    cout<<endl;
    return;
    }
    
    
    for(int i=start;i<=M;i++)
    {
        selected[step]=data[9-M+i];
        myfind(i+1,step+1,M,N);
    }
    
    
}
int main()
{
    int m,n;
    cin>>m>>n;
    myfind(1,0,m,n);
} 
搜索更多相关主题的帖子: 组合 include int selected step 
2018-05-26 21:55
Theblueman
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2018-3-11
得分:0 
回复 2楼 林月儿
谢谢

低头编程,用心学习!
2018-05-27 00:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-487306-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050925 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved