csum.pl 359 B

1234567891011121314151617
  1. sub num_paths {
  2. my ($startsum, $lastcoin) = @_;
  3. return 1 if $startsum == 250;
  4. my $paths = 0;
  5. foreach my $coin (1, 2, 5, 10, 20, 50, 100, 200) {
  6. if ($lastcoin >= $coin and $startsum <= 250 - $coin) {
  7. $paths += num_paths($startsum + $coin, $coin);
  8. }
  9. }
  10. $paths;
  11. }
  12. print num_paths($ARGV[0], $ARGV[1]), "\n";