从M个不同字符中任取N个字符的所有组合
2015-09-15 12:14
363 查看
题目如下:
![](http://img.blog.csdn.net/20150915121123406)
#include <string.h> #include <stdio.h> #include <stdlib.h> #define MAXLENGTH 10000 //组合问题(从M个不同字符中任取N个字符的所有组合) void combine(char *source,char *result,int n){ if (1==n) { while (*source) { printf("%s%c ",result,*source++); } }else { int i,j; for (i=0;source[i]!='\0';i++); for (j=0;result[j]!='\0';j++); for (;i>=n;i--) { result[j]=*source++; result[j+1]='\0'; combine(source,result,n-1); } } } int main(int argc, char* argv[]) { char source[MAXLENGTH]; int n = 0; char *result = NULL; scanf("%s %d",&source,&n); int len = strlen(source); /*1.输入参数有误*/ if(n>=len||n<=0) { printf("ERROR\n"); return 0; } /*2.初始化*/ result = (char *)malloc(sizeof(char)*n+1); memset(result,'\0',sizeof(result)); /*3.排列组合*/ combine(source,result,n); //free(result); return 0; }
相关文章推荐
- LeetCode Maximum Product Subarray
- FAT12中,如何定位大于一个扇区(512B)的文件内容
- FAT12中,如何定位大于一个扇区(512B)的文件内容
- UVA-1252 Twenty Questions (状压DP)
- 中国省份及其地级市整理JSON版(2015-08-23)
- HDU 3342 Legal or Not(拓扑排序判环)
- JavaScript 封装一个tab效果源码分享
- ng-class用法
- 四纵四横客运专线(高铁)
- HDU 5444 Elven Postman (排序二叉树 访问路径 数组&&链表实现)
- 准备ndk环境
- Rearrange a string so that all same characters become d distance away minDistance priority queue
- C#中TreeView实现适合两级节点的选中节点方法
- sql 经典命令行建立数据库 (增删改查)
- SOAP和RESTful 框架的 简介、对比和区别
- IOS“吐司”和 代理的设计模式
- UUID 压缩为22位
- 赋值运算符函数
- “TI门外汉”网路知识笔记五 三层交换技术
- 基于emoji 国际通用表情在web上的输入与显示的记录