2中方法实现数学中组合问题《在10个数中找出任意6个数的组合,数字不能》
2013-03-18 15:06
731 查看
《此算法不是本人自己的,先声明、算法是CSDN上面看到》我在此保留已做他用
1、非递归实现
2、递归实现
1、非递归实现
void fun() { int stack[10],top=0; int curNum=1; int count=0; while(1) { stack[top++]=curNum; if(top==6) { int i = 0; for(i=0;i<6;i++); printf("%d,",stack[i]); printf("\n"); count++; curNum=stack[--top]; } curNum++; while(curNum>10) curNum=stack[--top]+1; if(top<0) break; } printf("%d",count); }
2、递归实现
void combination(int m,int n,int comb[]) { int i,j; for (i=m;i>=n;i--) { comb =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; }
相关文章推荐
- C语言实现的排列组合问题的通用算法、解决方法
- 从n个数组中任意选取一个元素的所有组合的Java实现(组合问题)
- POJ-4004:数字组合(用位移方法解组合数问题,Java版)
- js判断价格,必须为数字且不能为负数的实现方法
- POJ-4004:数字组合(用位移方法解组合数问题,Java版)
- Object 监视器方法分解成截然不同的对象, 以便通过将这些对象与任意Lock 实现组合使用,为每个对象提供多个等待 set
- Java实现从字符串中找出数字字符串的方法小结
- java代码继承。。。找出不能继承父类方法的问题
- php通过排列组合实现1到9数字相加都等于20的方法
- java实现从M个元素中取N个元素的所有组合(数学中的组合问题)
- 关于数学组合问题在m个球中取n个球-递归实现
- Python实现找出数组中第2大数字的方法示例
- php通过排列组合实现1到9数字相加都等于20的方法
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 自动换行问题,而连续的数字和英文字符常常将容器撑大,下面介绍的是CSS如何实现换行的方法
- 程序员的数学 - 排列组合 - 解决计数问题的方法 - 阅读小结
- Golang排列组合算法问题之全排列实现方法
- 用非递归方法实现 求解字符串组合的问题 JAVA代码
- C#基于纯数学方法递归实现货币数字转换中文功能详解
- 分酒问题_求最大不能组合出的数字