- 论坛徽章:
- 7
|
本帖最后由 rubyish 于 2014-06-19 04:37 编辑
~ lai ge perl
perl abc.pl > result
cat result- #!/usr/bin/perl
- # abc.pl
- my @A = ( 8, 1, 4, 2, 7, 3, 5, 6 );
- my $B = 30;
- my @C = sort { $b <=> $a } @A;
- my @index = sort { $A[$b] <=> $A[$a] } 0 .. $#A;
- @index = sort { $index[$a] <=> $index[$b] } 0 .. $#index;
- sub gimme {
- my ( $num, $head, @tail ) = @_;
- return $num % $head ? () : [ $num / $head ] unless @tail;
- map {
- my $h = $_;
- map { [ $h, @$_ ] } gimme( $num - $h * $head, @tail )
- } 0 .. $num / $head;
- }
- my @result = map [ @$_[@index] ], gimme $B, @C;
- for my $r (@result) {
- print join ' + ', map { "$r->[$_]*$A[$_]" } 0 .. $#$r;
- print " = $B$/";
- }
- print 'total = ', ~~ @result, $/;
- __DATA__
复制代码 |
|