Haskell程序 检查阿姆斯特朗数
在Haskell中,我们可以使用列表推导和sum函数来检查给定的数字是否是阿姆斯特朗数。阿姆斯特朗数,也称为自恋数,是这样一些数字,它们的每个数字的立方和与该数字本身相等。
例如,数字153是一个阿姆斯特朗数,因为1^3 + 5^3 + 3^3 = 153。
算法
- 步骤1 - armstrong函数使用列表推导和sum函数计算n的数字的立方和,并定义。
-
步骤2 - 程序的执行将从main函数开始。main()函数具有整个程序的控制权。它被编写为main = do. main函数从用户输入并将其传递给armstrong函数以检查是否为阿姆斯特朗数。如果是,则显示消息“It是阿姆斯特朗数。”,否则显示“它不是阿姆斯特朗数。”。
-
步骤3 - 名为“num”的变量正在初始化。它将保存要检查是否为阿姆斯特朗数的数字。
-
步骤4 - 在调用函数后,使用‘putStrLn’语句将结果打印到控制台。
示例1
在此示例中,armstrong函数将整数n作为输入,并在它是阿姆斯特朗数时返回True,否则返回False。
armstrong函数使用列表推导和sum函数计算n的数字的立方和。
输出
示例2
在此示例中,使用sum和digitToInt函数定义了函数armstrong以检查传递的数字是否为阿姆斯特朗数。
输出
示例3
在此示例中,armstrong函数将整数n作为输入,并在它是阿姆斯特朗数时返回True,否则返回False。
armstrong函数使用列表推导和sum函数计算n的数字的立方和。
输出
结论
在Haskell中,我们可以使用函数,如show,map,read,length和sum,编写一个程序来检查给定的数字是否为阿姆斯特朗数。基本思想是将数字转换为字符串,然后将字符串中的每个字符再次转换为整数,最后计算数字的立方和。如果总和等于原始数字,则为阿姆斯特朗数,否则不是。