> 2009/05/27 (水) 21:27:33 ◆ ▼ ◇ [qwerty]> プログラムの得意な貴殿らに聞きたいんだけど(;´Д`)
> 1,5,3,2,8,4,9という数字が与えられて合計9になる組み合わせを
> 探すプログラムをVBAで書くの難しい?
> 答えは(1,5,3)(1,8)(5,4)(3,2,4)(1,8)(9)の5通りなんだけど
C++ だとこんな感じかしら(;´Д`)動くかどうかしらん
#include <stdio.h>
#include <stirng>
int tbl[]={1,5,3,2,8,4,9};
int ntbl = sizeof(tbl)/sizeof(int);
int func( std::string &str, int total, int *tbl, int ntbl)
{
int total = 0;
for(int i=0;i<ntbl-1; ++i){
std::string s = str+",",itoa(tbl[i]);
if( total+tbl[i]==9){
printf("みつけたよ(%s)\n", s.c_str());
} else {
func( s, total+tbl[i], tbl[i+1], ntbl-i);
}
}
return total;
}
int main(int argc, char *argv[])
{
for(int i=0;i<ntbl;++i){
std::string str;
func(str, 0, tbl[i], ntbl);
}
}
return 0;
}
参考:2009/05/27(水)20時49分37秒