阿姆斯特朗数是指一个数字,其中该数字每个数字的幂(数字的位数)之和等于该数字本身。一个具有 n 位的整数可以称为阿姆斯特朗数,如果它满足以下条件:
abcd...=an+bn+cn+dn+...
其中,
一个三位数如果其每个数字的立方之和等于该数字本身,则可以称为阿姆斯特朗数。例如,以 153 为例,153 的数字是 1、5 和 3。每个数字的立方 如下所示:
那么立方之和:1 + 125 + 27 = 153 所以它是一个阿姆斯特朗数。
在此 R 程序中,我们通过 'prompt' 和 readLine() 函数向用户提供适当的消息,接受用户输入的 3 位数到 num 变量中。使用 while 循环提取每个数字并计算每个数字的立方之和。计算后,检查总和是否等于给定的数字本身;如果是,则为阿姆斯特朗数,否则不是。
步骤 1:通过使用 readline() 将用户输入到变量 num 中,向用户显示适当的消息。
步骤 2:初始化 sum=0 并将 temp = num
步骤 3:使用 while 循环和条件 temp > 0 来计算每个数字的立方之和。
步骤 4:将 sum 与 num 进行比较,如果相等,则 print 该数字是阿姆斯特朗数,否则不是。
为了更深入地理解这个概念,我们向您推荐我们的博客 阿姆斯特朗数基础,相信会对您有很大帮助。
我们还建议您查看这个相关的 R 程序,检查 n 位数是否为阿姆斯特朗数
num = as.integer(readline(prompt="Enter a number: "))
# initialize sum
sum = 0
# find the sum of the cube of each digit
temp = num
while(temp > 0) {
digit = temp %% 10
sum = sum + (digit ^ 3)
temp = floor(temp / 10)
}
if(num == sum) {
print(paste(num, "is an Armstrong number"))
} else {
print(paste(num, "is not an Armstrong number"))
}
Enter a number: 230 [1] "230 is not an Armstrong number" Enter a number: 370 [1] "370 is an Armstrong number"