有没有一种快速的方法将 Julia 的 digits() 方法返回的值连接回它的原始数字?
Is there a quick way concat the values returned by Julia's digits() method back into it's original number?
我非常喜欢 Julia 的 Digits 函数,它将 return 组成输入整数的各个数字的数组(参见代码示例)。我的问题是,一旦你有了这个数组,是否有一种简单的方法可以将各个值连接回传递给数字的原始值?
现在,我想我可以只取每个整数的索引值并乘以它对应的 10 次方并就地修改数组。然后我可以在数组上使用 sum,但是有更好的方法吗?
I.E
function getDigits(x)
return digits(x)
end
Julia> getDigits(1234)
4-element Array{Int64,1}:
4
3
2
1
function joinDigits(digitArray)
for i in 0:length(digitArray)-1
digitArray[i+1] = digitArray[i+1] * 10 ^ i
end
return sum(digitArray)
Julia> joinDigits([4,3,2,1])
1234
foldr((rest, msd) -> rest + 10*msd,x)
是一个单一的班轮,做同样的事情。它很简洁,但可能不如 for 循环干净。
我非常喜欢 Julia 的 Digits 函数,它将 return 组成输入整数的各个数字的数组(参见代码示例)。我的问题是,一旦你有了这个数组,是否有一种简单的方法可以将各个值连接回传递给数字的原始值?
现在,我想我可以只取每个整数的索引值并乘以它对应的 10 次方并就地修改数组。然后我可以在数组上使用 sum,但是有更好的方法吗?
I.E
function getDigits(x)
return digits(x)
end
Julia> getDigits(1234)
4-element Array{Int64,1}:
4
3
2
1
function joinDigits(digitArray)
for i in 0:length(digitArray)-1
digitArray[i+1] = digitArray[i+1] * 10 ^ i
end
return sum(digitArray)
Julia> joinDigits([4,3,2,1])
1234
foldr((rest, msd) -> rest + 10*msd,x)
是一个单一的班轮,做同样的事情。它很简洁,但可能不如 for 循环干净。