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)的更多相关文章

  1. 有n个数,输出其中所有和为s的k个数的组合。

    分析:此题有两个坑,一是这里的n个数是任意给定的,不一定是:1,2,3...n,所以可能有重复的数(如果有重复的数怎么处理?):二是不要求你输出所有和为s的全部组合,而只要求输出和为s的k个数的组合. ...

  2. 输入n个数组,数组长度不等,每个数组取出一个数进行组合,求出所有的组合。

    转载声明:原文转自http://www.cnblogs.com/xiezie/p/5511707.html 昨天晚上,有个朋友找到我,他在用matlab编程,但是遇到一个问题,解决不了. 问题如下: ...

  3. 找出n个自然数(1,2,3,……,n)中取r个数的组合

    <?php /** * 对于$n和$r比较小, 可以用这种方法(当n=5, r=3时) */ function permutation1($n, $r) { for($i=1; $i<=$ ...

  4. hdu 1856 求集合里元素的个数 输出最大的个数是多少

    求集合里元素的个数 输出最大的个数是多少 Sample Input41 23 45 61 641 23 45 67 8 Sample Output42 # include <iostream&g ...

  5. JS实现的数组全排列输出算法

    本文实例讲述了JS实现的数组全排列输出算法.分享给大家供大家参考.具体分析如下: 这段js代码对数组进行全排列输出,改进了一些老的代码 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来, ...

  6. C语言:计算并输出给定10个数的方差。

    //计算并输出给定10个数的方差. #include<math.h> #include<stdio.h> ]) { double p = 0.0,f=0.0,g=0.0; ; ...

  7. C语言:输入一个数,输出比这个数小的所有素数,并求出个数。

    //C语言:输入一个数,输出比这个数小的所有素数,并求出个数. #include<conio.h> #include<stdio.h> #include<stdlib.h ...

  8. java实现全排列输出

    java实现全排列输出 转自:http://easonfans.iteye.com/blog/517286 最近在找工作,面试java程序员或者软件工程师,在笔试的时候常常见到这么一道题:全排列 的输 ...

  9. 编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示

    编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示. 要求: 1) 采用顺序栈实现算法: 2)从键盘输入一个十进制的数,输出相应的八进制数和十六进制数. ...

随机推荐

  1. MSA:多重比对序列的格式及其应用

    多重比对序列的格式及其应用   这里对多重序列比对格式(Multiple sequence alignment – MSA)进行总结.在做系统演化分析.序列功能分析.基因预测等,都需要涉及到多重序列比 ...

  2. js基本数据类型和typeof

    JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 null:空.无.表示不存在,当为对象的属性赋值为null,表示删除该属性 undefined:未定义.当声明变量却没有赋值时会显 ...

  3. Apache日志配置详解(rotatelogs LogFormat)

    logs/error_logCustomLog logs/access_log common--默认为以上部分 修改为如下: ErrorLog "|/usr/sbin/rotatelogs ...

  4. Python开发【第五篇】:Python基础之杂货铺

    字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-310 ...

  5. Storm:最火的流式处理框架

    伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样.更加便捷,同时对于信息的时效性要求也越来越高.举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当然是这 ...

  6. [转]12款最佳Linux命令行终端工具

    摘要 “工欲善其事必先利其器”,作为菜鸟,也是从别人那里偷学来的一些东东.今天看到同事用到一个终端命令行工具,觉得自己弱爆了.然后在网上搜了下该工具.发现类似的工具还是挺多的,只是自己不知道罢了. 原 ...

  7. strtr函数的用法

    http://php.net/manual/en/function.strtr.php <?php $trans = array("h" => "-" ...

  8. webapp中fixed问题解决方案

    主要问题: 1,头部输入框固定后,只要再滑动内容的话,输入框会随着滑动内容而滑动. 2,在低端机:2.3以下的安卓机,你会发现怎么解决都不行的,系统浏览器是不会支持的,头部底部固定的话会滑动内容而滑动 ...

  9. 绕过HR破门而入的求职智慧

    以往我们在网上看到的很多求职文章或指导性纲领,譬如啥自信.做功课.良好形象.华丽的简历.工作经验.口才啥的,其实到了21世纪尤其是互联网高速发展的今天,前面这些技巧就显得无比空洞: 1.因为自信谁都可 ...

  10. IBM:领导力素质的三环模式

    文章来源:http://blog.vsharing.com/sdtcj/A1826934.html   在翰威特公司于2003年评选的美国企业“领导人才最佳雇主”名单上,IBM名列榜首.而纽约< ...