r中的Armstrong数程序

r中的Armstrong数程序,r,R,是数字,其中数字本身等于其数字之和,并提升为其数字的幂 例如: 153=1^3+5^3+3^3 …那么,153是阿姆斯特朗的数字 142!=1^3+4^3+2^3 所以142不是阿姆斯特朗的数字 有人能帮我为R中的所有3位Armstrong数字编写代码吗?一个快速而肮脏的解决方案,使用?strsplit: 阿姆斯特朗(一个主题的变体 在我的R代码片段中有一个来自Greg Snow的函数。我会看看以后是否能找到一个链接。这里有一个类似的问题。它被称为“数字”,用于将数字拆分为数字,而无需使

是数字,其中数字本身等于其数字之和,并提升为其数字的幂

例如:

  • 153=1^3+5^3+3^3

    …那么,153是阿姆斯特朗的数字

  • 142!=1^3+4^3+2^3

    所以142不是阿姆斯特朗的数字


有人能帮我为R中的所有3位Armstrong数字编写代码吗?

一个快速而肮脏的解决方案,使用
?strsplit


阿姆斯特朗
(一个主题的变体

在我的R代码片段中有一个来自Greg Snow的函数。我会看看以后是否能找到一个链接。这里有一个类似的问题。它被称为“
数字”
,用于将数字拆分为数字,而无需使用
strsplit

数字1){
重叠(x,数字)
}否则{

n
armnumSure我们可以提供帮助,但你应该付出一些努力。这在Fortran中可能会有所帮助。选民们,你应该给新手OP一个机会来更新他们的问题!他们从最初的帖子开始就没有被看到过!嗨,欢迎来到SO。既然你是新来的,你可能想阅读网站的和部分来帮助你获得mo请阅读并相应更新您的问题。
100:999
而不是
seq
?虽然阿姆斯特朗数字没有什么用处,但这个代码片段是一个很好的例子,说明了如何使用整数的数字。但是我应该给你-1来表示“阿姆斯特朗”:-)+1对于这个伟大的例子(几乎)无需强制转换为
字符
。您可以用
n替换
nchar
,对于此应用程序,您也可以放弃对
rev
的调用,因为您只需进行立方运算并添加数字,顺序无关紧要。@CarlWitthoft,这条评论是否指向我的答案?这肯定是最慢的e、 我认为这是最快的。托马斯,没有必要把所有的东西都写在一行上。也许这就是卡尔所指的记忆猪!:)@AnandaMahto不,我猜托马斯创造的gigundo矩阵是最大的吃羊者。你的方法只会创建一个1-dim列表,对吗?@CarlWitthoft好的,我下一步会用更多的行我。我的目的不是创造最佳解决方案(我的R知识有限),而是想出不同的方法(周五下午的良好心理锻炼):)
(a <- rowSums(matrix(as.numeric(unlist(strsplit(as.character(100:999),''))),nrow=900,byrow=TRUE)^3))[a==100:999]
[1] 153 370 371 407