用a-z,0-9组合成所有可能的三位密码
2015-05-05 21:28
183 查看
代码
#include<stdio.h> #include<stdlib.h> #include<assert.h> void combination_cursion(int *a, int len, int m, int *out, int out_len) { int i; if (m == 0)//out中已经存储了m个数字 { for (i = 0; i < out_len; i++) printf("%d\t", out[i]); printf("\n"); return; } for (i = len; i >= m; i--)//从前向后依次选定一个,动态规划的体现 { out[m - 1] = a[i - 1];//选定一个之后 combination_cursion(a, i - 1, m - 1, out, out_len);//从前i-1个后选m-1,递归 } } void print_combination_cursion(int *a, int n, int m) { assert(a != NULL); assert(n >= m); int *out = (int *) malloc(sizeof(int) * m); combination_cursion(a, n, m, out, m); } int main() { int array[] = {1, 2, 3, 4, 5}; print_combination_cursion(array, sizeof(array) / sizeof(int), 3); return 0; }
相关文章推荐
- 请用Java实现一个算法:由a-z、0-9组成3位的字符密码,并打印所有可能的密码组合。
- 由a-z、0-9组成的3位密码,列出并打印所有可能的密码组合
- 字母a-z,数字0-9,现需要其中任意3个作为密码,请输出所有可能组合。
- c# 组合字符串组成密码的所有可能
- 给一个字符串(包含重复字符),打印它的所有可能的组合。
- 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m ,要求将其中所有的可能组合列出来.
- 写正确函数需要注意的地方:输入两个整数n和m,从数列1,2,3,...n中随意取几个数,使其和为m,列出所有可能组合
- 一个字符数组,里面的字符可能是a-z、A-Z、0-9.现在要求对数组进行排序,要求所有小写字符放在最前面,所有大写字符放在中间,所有数字放在最后,而且各部分内部分别有序。
- DFS 对一系列给定数据 进行深度优先遍历 获得54321的所有可能组合
- 输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来
- 给定一个数字字符串,返回数字可能表示的所有可能的字母组合。数字与字母的对应关系和手机按键对应。
- 给定n个数{1,2,3,...,n},从中选择任意两两不同的k个数,输出所有可能的组合
- 1-n,从中选择任意两两不同的k个数,输出所有可能的组合,要求不重不漏
- 给出a-z,0-9,输出所有的3个字符的组合 百度
- 给定一列字符,生成指定长度的所有可能的组合
- 【每天算法2】:用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连。
- 输入N个数,输出所有可能的排列组合(6+个小时啊,耶稣~)
- PHP 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来
- 打印所有小写字母所有可能的组合
- 输入两个整数n和m,从数列1,2,3....n中随意取几个数,使其和等于m,要求将其中所有的可能组合列出来