+ -
当前位置:首页 → 问答吧 → 给出一个字符集和数目n,输出该字符集在该数目下的组合。

给出一个字符集和数目n,输出该字符集在该数目下的组合。

时间:2011-12-01

来源:互联网

例如:
字符集 (p, o), n = 3,所以输出是:
ppp, ppo, poo, pop, opp, opo, oop, ooo

当然也可能是这样 字符集是(p, o), n = 2 (这个我想大家应该都知道怎么算了)

作者: yazoox   发布时间: 2011-12-01

n个字符,每个字符有字符集中字符个数t种选择
所以输出的字符串为t^n种,
具体输出两层for循环

作者: chhch11111   发布时间: 2011-12-01

用递归方法实现,lz有兴趣可以改成用栈的。

C/C++ code


#include <stdio.h>
#include <string.h>

void print_all( char* set, int set_size, int len, int depth, char result[] )
{
    if( len <= 0 || set_size <= 0 || depth < 0 ) { return; }
    if( depth == len ) { puts( result ); return; }
    for( int i = 0; i < set_size; ++i ) { result[depth] = set[i]; print_all( set, set_size, len, depth + 1, result ); }
}

int main()
{
    char* set = "po";
    int   len = 3;

    char* result = new char[len + 1];
    result[len] = 0; 
    print_all( set, strlen( set ), len, 0, result );
    delete[] result;

    return 0;
}


作者: gogdizzy   发布时间: 2011-12-01

热门下载

更多