gpt4 book ai didi

ruby - 是否有 Ruby 方法来获取整数的个位/十分位/百位?

转载 作者:数据小太阳 更新时间:2023-10-29 07:22:01 24 4
gpt4 key购买 nike

我正在做一个 Ruby 套路,要求我找出从 1 到 N(包括两端)的所有数字的数字总和。

所以如果我有这些输入,我会得到这些输出:

For N = 10 the sum is 1+2+3+4+5+6+7+8+9+(1+0) = 46

For N = 11 the sum is 1+2+3+4+5+6+7+8+9+(1+0)+(1+1) = 48

For N = 12 the sum is 1+2+3+4+5+6+7+8+9+(1+0)+(1+1) +(1+2)= 51

现在我知道需要做什么了。下面是我必须解决这个问题的代码:

def solution(n)
if n <= 9
return n if n == 1
solution(n-1) + n
elsif n >= 10
45 + (10..n) #How can I grab the ones,tenths, and hundreds?
end
end

基本上一切都很好,直到我超过 10。

我正试图找到某种可以做到这一点的方法。我搜索了 Fixnum 和 Integer,但没有找到任何可以帮助我的东西。我想要的是找到类似 "string"[0] 的东西,但当然不必在字符串和整数之间来回转换整数。我知道那里有数学关系,但我很难破译它。

如有任何帮助,我们将不胜感激。

最佳答案

您可以使用 modulo和整数 division递归计算:

def sum_digits(n)
return n if n < 10
(n % 10) + sum_digits(n / 10)
end

sum_digits(123)
# => 6

关于ruby - 是否有 Ruby 方法来获取整数的个位/十分位/百位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24208471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com