I made a quick and dirty script to see if some combination of + and -'s between all the digits of that string would return 42.
my $str = '7c9695cb23a71d851688cc0d7f8b1072';
my @nums = map {hex} split '', $str;
my @ops = qw(+ -);
my @iter = (0) x (length($str) - 1);
MAIN: while (1) {
my @set = (@ops[@iter], '');
my $newstr = join '', map {$nums[$_] . $set[$_]} (0..$#nums);
print "$newstr\n" if 42 == eval $newstr;
# Increment
my $i = $#iter;
while (++$iter[$i] == @ops) {
$iter[$i--] = 0;
last MAIN if $i < 0;
}
}
After running for an hour though, I decided that I needed to test this by hand:
use List::Util qw(sum);
my $str = '7c9695cb23a71d851688cc0d7f8b1072';
print sum map {hex} split '', $str;
=prints
231
=cut
Unfortunately, as you can see, the string contains an odd number of odd digits. This means that no combination of + and -'s between all the digits can return an even number. So there is no simple solution that equals 42