Thread Rätsel der Woche 2007/4: viel Spaß beim Rätseln (11 answers)
Opened by Ishka at 2007-02-20 03:15

docsnyder
 2007-02-27 16:10
#74429 #74429
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@Ishka

Danke!

Ich habe meine Lösung nochmal getuned (sie terminiert jetzt auch bei 5-stelligen Eingaben in vernünftiger Zeit und es funktionieren alle Eingaben! ).

Und damit Du nicht ständig an der Lösungsseite rumbasteln musst, hier der Code:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my($min) = my($n) = shift;
my(@vals, @arr, @res, %sums);

map { my($rt)=sqrt($_); push(@vals, $_) if ( $rt == int($rt) ) } ( reverse(1..$n) );

sub quadSum {
if ( ($_[0] >= 0) && (! @arr || ($_[0] <= $arr[-1])) && (@arr <= $min) ) {
if ( ! $_[0] ) {
push(@{$res[$min=@arr]}, join('+', sort { $b <=> $a } @arr) . "\n");
}
else {
map { push(@arr, $_); quadSum($_[0]-$_); pop(@arr) } @vals }
}
}

quadSum($n);

map { print } @{$res[$min]};

Gruss, Doc\n\n

<!--EDIT|docsnyder|1172585483-->

View full thread Rätsel der Woche 2007/4: viel Spaß beim Rätseln