スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0236デフォルトの名無しさん
2016/01/21(木) 08:12:31.11ID:7s6F6whZそういうアルゴリズムがあるのかは知らないが、例えば再起関数とかでできる
#include <iostream>
#include <vector>
using Vector = std::vector<int>;
void Func(size_t a, size_t m, size_t movingTarget, size_t start, Vector* pbuff, std::vector<Vector>* pdest)
{
if(movingTarget != a){
for(size_t i = start; i < m; ++i){
(*pbuff)[i] += 1;
Func(a, m, movingTarget+1, i, pbuff, pdest);
(*pbuff)[i] -= 1;
}
} else {
pdest->push_back(*pbuff);
return;
}
}
int main() {
size_t a, m;
std::cin >> a >> m;
Vector buff(m, 0);
std::vector<Vector> dest;
Func(a, m, 0, 0, &buff, &dest);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています