C语言中,输出一组数的排列和组合
来源:互联网 发布:jre 7u9 windows x64 编辑:程序博客网 时间:2024/04/30 21:23
N个元素中取出M个元素的所有排列
#include <stdio.h>#define MAX 10void print();void Perm(int step);int used[MAX] = {0}; int result[MAX] = {0}; int M, N;int main(){ printf("Please input N M = "); scanf("%d %d", &N, &M); printf("N = %d, M = %d\n", N, M); Perm(0); return 0; }void print() { int i; for(i = 0; i < M; i++) { printf("%d ", result[i]); } printf("\n");}void Perm(int step){ int i; if (step == M) { print(); } else { for(i = 0; i < N; i++) { if (!used[i]) { used[i] = 1; result[step] = i + 1; Perm(step + 1); used[i] = 0; } } }}
N个元素中取出M个元素的所有组合
#include <stdio.h>#define MAX 20int c[MAX] = {0};int M, N;void print();void comp(int);int main(){ printf("Please input N M = "); scanf("%d %d", &N, &M); printf("N = %d, M = %d\n", N, M); comp(1); return 0;}void print(){ int i; for (i = 0; i < M; i++) { printf("%d", c[i + 1]); } printf("\n");}void comp(int m){ if (m == M + 1) { print(); } else { for (c[m] = c[m - 1] + 1; c[m] <= N - M + m; c[m]++) { comp(m + 1); } }}
阅读全文
0 0
- C语言中,输出一组数的排列和组合
- 输出字符串的排列数和组合数
- C语言找一组数中单独出现的数字
- 字符串的排列输出 和组合输出
- 组合数和排列数的关系
- C语言实现数学上的组合和排列
- 【c语言】输出一组数中有2个出现了1次的数
- c 语言实现全排列和组合
- 关于一组数据的排列与组合
- 一组数字的全排列按序输出
- 输出一组整数的全排列
- 1056. 组合数的和(15)——C语言
- C语言中的#define宏定义 求一组数的最大值和最小值
- 关于输入一组数并输出所有全排列思考~
- 一组数所有排列
- 输出组合排列的方案
- 求一组数的所有组合。
- 排列和组合算法 C语言经典实现
- String、StringBuffer与StringBuilder之间的区别
- LeetCode 203. Remove Linked List Elements *****虚拟头结点
- 模板模式
- 507. Perfect Number
- 获取时间
- C语言中,输出一组数的排列和组合
- CentOS 下gogs搭建
- C语言的5种存储类以及关键字volatile、restrict
- 机器学习概述
- Struct和Class的区别
- zuul实现动态路由以及相关源码解析
- 函数式编程的一点理解
- C#学习笔记(三)—–C#高级特性:try语句和异常
- Ubuntu 下配置vsftpd实现FTP服务器