递归加法PHP


Recursive Addition PHP

我被要求对passs值进行递归加法,例如,如果passs值为1024,我应该得到答案7

我正在使用此代码

function recursiveAdd($arg)
{
    $ans = floor($arg);
    if ($arg<=1) return $ans;
    if (($arg/10)>0) return $ans + floor(recursiveAdd($arg/10));
    //else return $arg % 10;
}
echo recursiveAdd(1024);

我想我在那里,如果我运行它,我得到1137,在这种情况下,最后一个数字是我需要的。

你能检查一下吗,因为我认为我没有看到错误的递归!

问候

这一个执行请求,并且有点简化:

<?php
function recursiveAdd($arg)
{
    if ($arg>9) {
        return $arg%10 + recursiveAdd(floor($arg/10));
    } else {
        return $arg;
    }
}
echo recursiveAdd(1024);

然而,你不必使用递归,如果没有,事情会更快,资源消耗更少

<?php
function sequentialAdd($arg)
{
    $sum = 0;
    $string = (string) $arg;
    foreach (str_split($string) as $digit) {
        $sum += $digit;
    }
    return $sum;
}
echo sequentialAdd(1024);

您可以在不使用递归的情况下尝试此操作

function recursiveAdd($arg)
{
    $ans=0;
    $i=$arg%10;
    while($arg>0)
    {
       $ans+=$i;
       $arg=$arg/10;
    }
    return $ans;
}