900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 从n个数中选出m个数的组合

从n个数中选出m个数的组合

时间:2022-07-18 14:17:12

相关推荐

从n个数中选出m个数的组合

找出从自然数1,2,3,…,n中任取m个数的所有组合。例如:n=5,m=3时,所有组合为543,542,541,532,531,521,432,431,421,321。

#include<iostream>#include<cstdio>#define N 4 //被选择的数目#define M 2 //要选出来的数目using namespace std;int vis[N+1]; //标志,int ans=0; //含有的组合数 的数量int num[M+1]; //选出来的数放在num数组里面void solve() {//在solve函数里面输出 for(int i=1; i<M+1; i++)cout<<num[i]<<" ";cout<<endl;}void dfs(int index) {//挑选的第index+1个数if(index == M) {solve();ans++; return ;}for(int i=num[index]+1; i<N+1; i++) {if(!vis[i]) {vis[i] = 1;num[index+1] = i;dfs(index+1);vis[i] = 0;}}}int main(){dfs(0); //回溯开始cout<<endl<<ans;return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。