R语言——水仙花数(向量化运算)
Posted 统计学小王子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言——水仙花数(向量化运算)相关的知识,希望对你有一定的参考价值。
求水仙花数是入门编程同学的基本习题,今天使用R语言来完成这个任务。
水仙花数是三位数即从100
到999
中寻找。其定义是 :x_100,x_10,x_1
是数x
的百位十位个位数.当 其满足
x
100
3
+
x
10
3
+
x
1
3
=
x
x_{100}^3 + x_{10}^3 + x_{1}^3 = x
x1003+x103+x13=x时,成数x
为水仙花数也称水莲花数。
这个任务的主要难点是提取数据每个位上的数据。不过过程还是很简单的,下面直接给出其中一种实现方式的代码。
num3 <- function(x){
x = 100:x
x_100 <- floor(x / 100)
x_10 <- floor((x - 100*x_100)/10)
x_1 <- x - x_100*100 - x_10*10
y = x_1^3 + x_10^3 + x_100^3 == x
Data <- data.frame(x = x, y = y)
Data[y == T, 1]
}
调用函数如下:
> num3(200)
[1] 153
> num3(500)
[1] 153 370 371 407
> num3(800)
[1] 153 370 371 407
> num3(999)
[1] 153 370 371 407
以上是关于R语言——水仙花数(向量化运算)的主要内容,如果未能解决你的问题,请参考以下文章