fractal.hs

来自「ULM大学200-2002年竞赛题」· HS 代码 · 共 34 行

HS
34
字号
-- 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 + =
减小字号Ctrl + -
显示快捷键?