Haskell 程序打印三角形形式的乘法表
本教程讨论了在 Haskell 编程语言中编写一个程序来打印三角形形式的乘法表。
例如,数字 10 的三角形格式的乘法表为
1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81 10 20 30 40 50 60 70 80 90 100
算法步骤
获取输入或初始化一个整数变量 n,用于打印乘法表。
实现打印乘法表的程序逻辑。
示例
程序打印三角形形式的数字乘法表。
-- function declaration for tablehelper function
tablehelper :: Int->Int -> IO()
-- function definition for tablehelper function
tablehelper n i = if(i==n)
then printTable n 1
else do
printTable i 1
tablehelper n (i+1)
-- function declaration for printTable function
printTable :: Int->Int->IO()
-- function definition for printTable function
printTable n i = if (n==i)
then putStrLn((show (n*i)) ++ " ")
else do
putStr ((show (n*i)) ++ " ")
printTable n (i+1)
main :: IO()
main = do
-- initializing variable for n
let n = 10
-- invoking the function tablehelper
print ("The multiplication table for number " ++ show n ++ " in the triangular form is:")
tablehelper n 1
输出
"The multiplication table for number 10 in the triangular form is:" 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81 10 20 30 40 50 60 70 80 90 100
在上面的程序中,
我们声明了一个函数 tableHelper,它接受两个整数参数并返回一个 IO 操作。IO 操作是使用输入和显示控制台的操作。print 函数是一个 IO 操作,因为它在控制台上显示输出。
在函数 tableHelper 的函数定义中,接受了两个整数参数 n 和 a,其中 n 是要生成乘法表的数字,a 是用于迭代的变量。将 n 的值与 i 进行比较。如果 n 的值等于 i,则控制权转移到 then 块,这是一个基本情况,其中 printTable 函数被调用,参数为 n 和 1。
如果 n 的值不等于 i,则控制权转移到 else 块,其中函数 printTable 函数被调用,参数为 i 和 1。最后,该函数以参数 n 和 i+1 递归调用自身。当 i+1 等于 n 时,函数终止。
我们声明了另一个函数 printTable,它接受两个整数参数并返回一个 IO 操作。在其函数定义中,它接受两个整数 n 和 i。
该函数比较 n 和 i 的值,如果 n 等于 i,则控制权转移到 else 块,这是一个基本情况,其中该函数使用 putStrLn 函数打印 n 和 i 的乘积值。如果 n 不等于 i,则控制权转移到 else 块,其中使用 putStr 函数打印 n 和 i 的乘积值。并且该函数递归调用自身,参数为 n 和 (i+1),直到到达基本情况。
这两个递归函数充当嵌套循环。在主函数中,为 n 初始化一个变量。tableHelper 函数被调用,参数为 n 和 1,其中 n 是迭代的初始步骤。
注意 - show 函数接受数字作为参数,并返回数字的解析字符串。“++”是 Haskell 中用于连接字符串的操作符。
结论
在本教程中,我们讨论了在 Haskell 编程语言中实现一个程序来打印三角形形式的乘法表。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP