【发布时间】:2021-12-08 06:10:16
【问题描述】:
我正在尝试编写一个基于 Luhn 算法(mod 10 算法)的函数,并且我需要一个函数来分别对我的数字向量中所有大于 9 的整数求和。例如。 10 的总和应为 1+0=1,而 19 的总和应为 1+9=10。示例代码:
nmr <- ("1_9_8_2_0_5_0_1_3_3_4_8")
nmr <- strsplit(nmr, "_")
nmr <- as.numeric(as.character(unlist(nmr[[1]])))
luhn_alg <- c(0,0,2,1,2,1,2,1,2,1,2,0)
x <- nmr*luhn_alg
x
[1] 0 0 16 2 0 5 0 1 6 3 8 0
sum(x)
[1] 41
我不希望 x 的总和等于 41。相反,我希望总和等于:0+0+1+6+2+0+5+0+1+6+3+8+0=32。我尝试了一个 for 循环,但似乎没有做对。非常感谢任何帮助。
【问题讨论】: