Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use strict;
- use Algorithm::Permute qw/permute/;
- my $num = shift or die "pls specify some number";
- # generator
- my $len = length($num) - 1;
- my %ops;
- foreach my $i (0..$len) {
- $ops{'+' x $i . '-' x ($len - $i)}++;
- $ops{'+' x $i . ' ' x ($len - $i)}++;
- $ops{'-' x $i . ' ' x ($len - $i)}++;
- }
- my @operands = split //, $num;
- my %res;
- foreach my $k (keys %ops) {
- my @o = split //, $k;
- # permutasi
- permute {
- my @ary = @o;
- my $e = join '', map { my $o = shift(@ary) || ''; "$_$o" } @operands;
- $e =~ s/ //g;
- $res{eval $e}++;
- } @o;
- }
- my $total = scalar keys %res;
- print "$total\n";
- # print join(', ', keys %res), "\n";
Add Comment
Please, Sign In to add comment