问题描述
我有一个递归函数 int digit_sum(int number);
,它返回数字中所有数字的总和。例如,digit_sum(159)
= 1 + 5 + 9 = 15。
功能如下:
int digit_sum(int n)
{
if (n < 0)
n = -n;
if (n < 10)
return n % 10;
while (n % 10 == 0 && n > 0)
n = n / 10;
return n % 10 + digit_sum(n - (n % 10));
}
我不确定如何为此函数编写递归关系。我知道 T(0) 是前两个 if 语句常量的总和。但是,对于 T(n),我不确定如何表达 while 循环项和 T(n-k)。
T(n) = c_1 + c_2 + c_3*n (while 循环) + (n mod 10 + T(n - (n mod 10))) for n >= 10
我知道整个 T(n-k) 项是错误的。
解决方法
这是一个可能的解决方案:
const { state } = useLocation();
state.key