我正在进行一项能够完成这项任务的练习。我必须取一个多位整数> = 0,即830124,然后创建各个数字的数组。
我的想法是,我可以将它转换为字符串,索引数组中的字符串,然后转换回int,但我仍然有点丢失。有什么建议吗?
答案 0 :(得分:2)
你的直觉是正确的:
830124.to_s.each_char.map(&:to_i)
# => [ 8, 3, 0, 1, 2, 4 ]
单独使用数学也很容易,这可能稍微快一点:
num = 830124
arr = []
while num > 0
num, remainder = num.divmod(10)
arr.unshift(remainder)
end
p arr
# => [ 8, 3, 0, 1, 2, 4 ]
答案 1 :(得分:2)
n.to_s.size.times.with_object([]) { |_,a| n,i = n.divmod(10); a.unshift(i) }
#=> [8, 3, 0, 1, 2, 4]
或者,不将字符转换为整数:
// An example document with spatial data
public class MyDocument
{
public string Id { get; set; }
public Microsoft.Azure.Documents.Spatial.Point Location { get; set; }
}
// An example distance query - get all documents within 30 km of a given point
client.CreateDocumentQuery<MyDocument>(collection.SelfLink)
.Where(x => x.Location.Distance(new Point(32.33, -4.66)) < 30000))