3 Stimmen

f# stackoverflow projekt euler #4

Ich arbeite an Problem vier von Projekt Euler und stoße auf eine Stackoverflow-Ausnahme. Ich bitte nicht um Hilfe bei der Lösung des Problems, ich möchte nur, dass es erklärt wird warum Ich erhalte eine Stackoverflow-Ausnahme. Es ist in der Regel wegen der unendlichen Rekursion, aber ich glaube nicht, dass das diesmal der Fall ist (wenn ich nur blind bin und nicht sehen, es jetzt bitte lassen Sie mich wissen).

Hier ist der Code:

let Euler4 =

let reverse sum =
    let rec loop (n,x) =
        if n = 0
        then
            x
        else
            loop (n/10,(x*10) + (n%10))

    loop (sum, 0);

let isPalindrome arg = (arg = (reverse arg));

let findPalindromes (startx,starty) =
    let rec loop (x,y) acc =
        let result = if isPalindrome (x * y) then ((x,y) :: acc) else acc;
        let next = match (x,y) with
            | (x,y) when y = 100 -> (x-1,starty)
            | _ -> (x,y-1)
        if x = 100 then
            result
        else
            loop (next) result

    loop (startx,starty) [];

let value = (999,999);
printfn "%A" (findPalindromes value);

;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X