设为首页 加入收藏

TOP

编程算法 - 组合数 代码(C)
2014-11-23 19:43:16 来源: 作者: 【 】 浏览:23
Tags:编程 算法 组合 代码

一个字符串的组合数, 如abc, 输出的是a, b, c, ac, ab, bc, abc, 即包含顺序的组合.


类似位(bit)的全排列, 如 001, 010, 100, 011, 101, 110, 111.


代码:


/*
* main.cpp
*
* Created on: 2014.7.20
* Author: Spike
*/


/*eclipse cdt, gcc 4.8.1*/


#include
#include
#include
#include


using namespace std;


string BinaryString(string s, int i) {
string tmp;
int k=0;
while (i != 0) {
if (i & 0x1)
tmp.push_back(s[k]);
k++;
i >>= 1;
}
return tmp;
}


vector Combination(string s) {
vector vs;
if (s.length() == 0)
return vs;
int num = pow(2.0, s.length());
for (int i=1; i string tmp = BinaryString(s, i);
vs.push_back(tmp);
}
return vs;
}


int main(void)
{
string s = "abc";
vector vs = Combination(s);
for (size_t i=0; i cout << vs[i] << endl;
}
return 0;
}


输出:


a
b
ab
c
ac
bc
abc



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Groovy深入探索——Groovy的Class.. 下一篇使用Java语言如何实现快速文件复..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: