n全排列输出和 n个数的组合(数字范围a~b)
n全排列输出: int WPermutation(int num, bool bRepeat)
num表示num全排列 bRepeat标志是否产生重复元素的序列。 int Permutation(int n, int* A, int cur, bool bRepeat)
{
static int number = 0;
if(cur == n)
{
number++;
for(int i = 0; i< n; i++)
{
printf("%d ", A[i]);
}
printf("\n");
}
else
{
for(int i = 1; i <= n; i++)
{
int ok = 1;
for(int j = 0; j < cur; j++)
{
if(!bRepeat)
{
if(A[j] == i)
{
ok = 0;
}
}
} if(ok)
{
A[cur] = i;
Permutation(n, A, cur + 1, bRepeat);
} }
} return number;
}
int WPermutation(int num, bool bRepeat)
{
printf("%d permutation(%s): %d ~ %d\n", num, bRepeat?"repeat mode":"single mode", 1, num);
int n = num;
int *A = (int*)malloc(n*sizeof(int));
memset(A, 0, sizeof(n*sizeof(int)));
int cur = 0;
int number = Permutation(n, A, cur, bRepeat);
delete [] A ;
A = NULL;
printf("over!\n");
return number; } int Wpermutation(int st, int en, int n, bool bRepeat);
n个数的组合(数字范围st~en),考虑重复元素: n表示n个数字组合 每个数字范围:st~en bRepeat标志是否产生重复元素的序列。 int Permutation(int st, int en, int n, int* A, int cur, bool bRepeat)
{
static int number = 0; if(cur == n)
{
number++;
for(int i = 0; i< n; i++)
{
printf("%d ", A[i]);
}
printf("\n");
}
else
{
for(int i = st; i <= en; i++)
{
int ok = 1;
for(int j = 0; j < cur; j++)
{
if(!bRepeat)
{
if(A[j] == i)
{
ok = 0;
}
}
} if(ok)
{
A[cur] = i;
Permutation(st, en, n, A, cur + 1, bRepeat);
} }
} return number;
} int Wpermutation(int st, int en, int n, bool bRepeat)
{
printf("%d permutation(%s): %d ~ %d\n", n, bRepeat?"repeat mode":"single mode", st, en);
int num = en - st + 1;
if(n > num)
{
bRepeat = true;
printf("too many number, to be repeat mode:\n");
} int *A = (int*)malloc(n*sizeof(int));
memset(A, 0, sizeof(n*sizeof(int)));
int cur = 0;
int number = Permutation(st, en, n, A, cur, bRepeat);
delete [] A ;
A = NULL;
printf("over!\n");
return number;
}
n全排列输出和 n个数的组合(数字范围a~b)的更多相关文章
- 有n个数,输出其中所有和为s的k个数的组合。
分析:此题有两个坑,一是这里的n个数是任意给定的,不一定是:1,2,3...n,所以可能有重复的数(如果有重复的数怎么处理?):二是不要求你输出所有和为s的全部组合,而只要求输出和为s的k个数的组合. ...
- 输入n个数组,数组长度不等,每个数组取出一个数进行组合,求出所有的组合。
转载声明:原文转自http://www.cnblogs.com/xiezie/p/5511707.html 昨天晚上,有个朋友找到我,他在用matlab编程,但是遇到一个问题,解决不了. 问题如下: ...
- 找出n个自然数(1,2,3,……,n)中取r个数的组合
<?php /** * 对于$n和$r比较小, 可以用这种方法(当n=5, r=3时) */ function permutation1($n, $r) { for($i=1; $i<=$ ...
- hdu 1856 求集合里元素的个数 输出最大的个数是多少
求集合里元素的个数 输出最大的个数是多少 Sample Input41 23 45 61 641 23 45 67 8 Sample Output42 # include <iostream&g ...
- JS实现的数组全排列输出算法
本文实例讲述了JS实现的数组全排列输出算法.分享给大家供大家参考.具体分析如下: 这段js代码对数组进行全排列输出,改进了一些老的代码 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来, ...
- C语言:计算并输出给定10个数的方差。
//计算并输出给定10个数的方差. #include<math.h> #include<stdio.h> ]) { double p = 0.0,f=0.0,g=0.0; ; ...
- C语言:输入一个数,输出比这个数小的所有素数,并求出个数。
//C语言:输入一个数,输出比这个数小的所有素数,并求出个数. #include<conio.h> #include<stdio.h> #include<stdlib.h ...
- java实现全排列输出
java实现全排列输出 转自:http://easonfans.iteye.com/blog/517286 最近在找工作,面试java程序员或者软件工程师,在笔试的时候常常见到这么一道题:全排列 的输 ...
- 编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示
编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示. 要求: 1) 采用顺序栈实现算法: 2)从键盘输入一个十进制的数,输出相应的八进制数和十六进制数. ...
随机推荐
- OpenGL Driver Architecture[转]
http://www.cnblogs.com/cgwolver/archive/2009/01/04/1368350.html
- Outlook2003收到的邮件不能显示图片,但转发或回复可以 故障排错
转自:http://wenku.baidu.com/link?url=4O0Wpsnk_OasA7B-M4KMJ4H-WnLicT4vfVOT7AvXhTjpn-p2gBTNsXR4W230r0gAE ...
- securecrt中文乱码
1.直接打开Linux的terminal中文字符显示正常,但是用securecrt登陆后中文显示不正常 解决方法:securecrt字符集设置不对 路径:Options -> Session O ...
- C语言getopt()函数的使用
getopt(分析命令行参数) 相关函数表头文件 #include<unistd.h>定义函数 int getopt(int argc,char * ...
- [webgrid] – selecterow - (Get Selected Row from ASP.NET MVC 3 WebGrid)
Get Selected Row from ASP.NET MVC 3 WebGrid Abstract: The following article demonstrates how to get ...
- Yii2提交表单提示无法验证
yii2使用gii生成的搜索视图里的表单使用的是get方式,我改为post就提示无法验证,以为是控制器默认访问是get,实际默认是get和post都可以 public function behavio ...
- JavaScript 五种(非构造方式)继承
参考链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html
- js使用split函数按照多个字符对字符串进行分割的方法
这篇文章主要介绍了js使用split函数按照多个字符对字符串进行分割的方法,实例分析了split函数的使用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了js使用split函数按照多个 ...
- AndroidStudio-使用Translations Editor
前言 如果你的App支持多语言,你需要正确的管理你的翻译字符串资源.Android Studio提供了翻译编辑器使更容易的查看和管理翻译资源. 关于翻译编辑器 翻译资源存储工程的多个目录下的多个XML ...
- SQL存储过程来调用webservice
如果用存储过程来调用webservice 那存储过程的功能感觉能做好多事情了? 别自欺欺人了.那些功能还是webservice来实现的... 完整的webservice代码:(也是默认的,新建.asm ...