Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- use Data::Dumper;
- my @sequenze;
- for my $a1 (0 .. 2) {
- for my $a2 (0 .. 2) {
- for my $a3 (0 .. 2) {
- for my $a4 (0 .. 2) {
- for my $a5 (0 .. 2) {
- for my $a6 (0 .. 2) {
- for my $a7 (0 .. 2) {
- for my $a8 (0 .. 2) {
- my $seq = [ $a1, $a2, $a3, $a4, $a5, $a6, $a7, $a8 ];
- push @sequenze, $seq;
- }
- }
- }
- }
- }
- }
- }
- }
- my @sequenze2;
- for my $seq (@sequenze) {
- my @seq2 = (1);
- for my $i (0 .. 7) {
- next_elem( $i, \@seq2, $seq);
- }
- my @seq3 = @seq2;
- my $tot = shift @seq2;
- while (my $elem = shift @seq2) {
- if ($elem eq '+') {
- $tot += shift @seq2;
- } elsif ($elem eq '-') {
- $tot -= shift @seq2;
- } else {
- print 'ERRORE ';
- }
- }
- next unless $tot == 100;
- push @seq3, '=', $tot;
- my $buf = join '', @seq3;
- print $buf, "\n";
- }
- sub next_elem
- {
- my ($i, $seq2, $seq) = @_;
- my $nextnum = $i+2;
- my $concat;
- if ($seq->[$i] == 0) {
- push @$seq2, '+';
- } elsif ($seq->[$i] == 1) {
- push @$seq2, '-';
- } else {
- $concat = 1;
- }
- if ($concat) {
- my $num = pop @$seq2;
- $num = $num*10 + $nextnum;
- push @$seq2, $num;
- } else {
- push @$seq2, $nextnum;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment