编程实现:组合_排列
来源:互联网 发布:农产品追溯软件 编辑:程序博客网 时间:2024/05/22 14:19
组合:
1通用方法:
#include <stdio.h>#include <stdlib.h>#define MAX_NUM 26int comb[MAX_NUM];int c1,c2;void combination(int m,int n) { int i,j; for (i=m;i>=n;i--) { comb[n]=i; /* 选择当前的“头”元素 */ if (n>1) { combination(i-1,n-1); /* 进入下一次更小的组合问题 */ } else { /* 满了需要的组合数,输出 */ for (j=comb[0];j>0;j--) printf("%c",'A'+c1-comb[j]); printf("\n"); } } return;}int main(int argc,char **argv) { if (argc<3) { printf("%s 组合下标 组合上标\n",argv[0]); return 1; } c1=atoi(argv[1]); if (c1<1 || MAX_NUM<c1) { printf("1<=组合下标<=%d\n",MAX_NUM); return 2; } c2=atoi(argv[2]); if (c2<1 || c1<c2) { printf("1<=组合上标<=组合下标\n"); return 3; } comb[0]=c2; combination(c1,c2); return 0;}
2特殊方法:
int main(){ int i, j, k; for (i = 1; i <= 5; i++) { for (j = 1; j <= 5; j++) { if (j == i) break; for (k = 1; k <= 5; k++) { if (k == i || k == j) break; printf("i = %d, j = %d, k = %d\n", i, j, k); } } } return 0;}
排列:
n次for循环,每层判断是否相等即可。
阅读全文
0 0
- 编程实现:组合_排列
- java 实现 排列 组合
- 编程优化数学组合排列公式取模实现
- 递归学习_组合_普通选择性组合排列
- 递归学习_组合_全组合排列
- 递归学习_组合_类循环组合排列
- lua实现全排列和组合排列
- 字符串的全排列_全组合
- JAVA基础(006_排列、组合)
- 排列与组合的实现
- 排列与组合C++实现
- 排列和组合的实现
- 组合数学学习之排列、组合、圆周排列实现
- 编程实现全排列
- 排列组合_排列_程序实现
- 全排列思想 实现_ _ _ + _ _ _ = _ _ _解法
- 一个实现排列和组合的JavaBean
- C语言实现排列/组合算法
- MySQL条件控制(case when...then...else...end) 详细解释
- [ASDFZ-NOIP2016模拟]植树方案
- windows 10 安装xgboost
- 关于在linux上安装tomcat并部署javaweb项目
- ubuntu mysql 5.6版本的删除,安装,中文乱码文件配置
- 编程实现:组合_排列
- codeforces D. An overnight dance in discotheque
- 第四届图灵杯-C.来简单地数个数(费波纳兹,字符串数据处理)
- 独家:考出面试者基本功的 10 个简单编程题
- Qt connect函数的深入研究
- 监督学习和无监督学习的区别
- 阿里巴巴开源项目 -- Druid
- MySQL学习笔记4——MySQL进阶操作2
- 面试70问 经典回答