📄 fractal.hs
字号:
-- Problem The Sierpinski Fractal-- Algorithm Recursion-- Runtime O(n^2)-- Author Walter Guttmann-- Date 27.12.2001import List;main :: IO ()main = do input <- readFile "fractal.in" mapM_ solve $ takeWhile (> 0) $ map read $ words inputsolve :: Int -> IO ()solve n = triangle (putStrLn "") [2^n] ntriangle :: IO () -> [Int] -> Int -> IO ()triangle m xs 1 = do putStrLn (line1 1 xs) putStrLn (line2 1 xs) mtriangle m xs n = triangle m' xs (n-1) where m' = triangle m (concat [ [ x-o , x+o ] | x <- xs ]) (n-1) o = 2 ^ (n-1)line1 :: Int -> [Int] -> Stringline1 o [] = ""line1 o (x:xs) = replicate (x-o) ' ' ++ "/\\" ++ line1 (x+2) xsline2 :: Int -> [Int] -> Stringline2 o [] = ""line2 o (x:xs) = replicate (x-o-1) ' ' ++ "/__\\" ++ line2 (x+3) xs
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -