-1

文字列を含む 5 つのリストがあります: append、word、middle、combo、prepend です。(または s0、s1、s2、s3、s4)。各リストには、プログラムの開始時に 0 から 256 の文字列をランダムに含めることができます。

可能なすべての組み合わせを出力するにはどうすればよいですか?

for() ループのカスケードを試しましたが、途中のリストに含まれる文字列が 0 (s2 など) の場合は失敗します。

4

3 に答える 3

0

リストが空かどうかを確認するために if を入れてみませんか?

于 2013-08-26T12:18:08.827 に答える
0

あなたの例では、配列内の単語を並べ替えたいと想定しています

そして、C++ がタグ付けされているので、次のことをお勧めします (vectorの使用string)

#include <algorithm>
#include <string>
#include <iostream>
#include <vector>
#include <iterator>

int main()
{

    std::vector <std::string> v ={ "append", "word", 
                       "middle", "combo", "prepend"};

    //Use v.push_back to add any number of strings

    std::sort(v.begin(), v.end());
    do {
        std::copy(v.begin(), v.end(), 
                  std::ostream_iterator<std::string>(std::cout, " "));
        std::cout<<std::endl;
    } while(std::next_permutation(v.begin(), v.end()));
}

256 弦の場合は、256!

于 2013-08-26T12:34:07.247 に答える