5

正の整数 n の整数平方根は、2 乗が n 以下の最大の整数です。(たとえば、7 の整数の平方根は 2 で、9 の平方根は 3 です)。

これが私の試みです:

intSquareRoot :: Int -> Int
intSquareRoot n
    | n*n > n   = intSquareRoot (n - 1) 
    | n*n <= n  = n

必要に応じて再帰とともに n が減少するため、機能していないと推測していますが、これは Haskell であるため、変数を使用して元の n を保持することはできません。

4

4 に答える 4