>  2009/05/27 (水) 21:35: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;
> }

やっぱり住人はすごいな(;´Д`)Perlで書いてください

参考:2009/05/27(水)21時27分33秒