[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
呵呵,以前工作上有要用到类似的情况,也写过一个简单的Perl Script:
  1. use Math::Combinatorics;
  2. #sum.pl by y6cmE 9044185@qq.com
  3. $|=1;
  4. print "请输入要计算的合计数:";
  5. my $C=<>;
  6. chomp $C;
  7. print "请输入要匹配一次或多次,一次为1,多次为其它数,如2:";
  8. my $B=<>;
  9. chomp $B;
  10. print "请输入最少几个数开始匹配,如1:";
  11. my $X=<>;
  12. chomp $X;
  13. print "请输入最多几个数结束匹配,如9:";
  14. my $Y=<>;
  15. chomp $Y;
  16. open(C,">结果.txt") or die;
  17. open(A,"数组.txt") or die;
  18. while(my $line=<A>){
  19. chomp $line;
  20. push(@N,$line);
  21. }
  22. close A;
  23. foreach my $p($X..$Y){
  24. my $combinat=Math::Combinatorics->new(count=>$p,data=>[@N]);
  25. while(my @combo=$combinat->next_combination){
  26. my $num=0;
  27. foreach my $o(@combo){
  28. $num=$num+$o;
  29. }
  30. if($num eq $C){
  31. print "@combo\n";
  32. print C "@combo\n";
  33. if($B == 1){
  34. close C;
  35. <>;
  36. exit;
  37. }
  38. }
  39. }
  40. }
  41. close C;
  42. <>;
复制代码
1

评分人数

Just another Perl hacker

TOP

返回列表