编写一个计算零的递归函数

Mat*_*zuk 0 java methods recursion function

可以通过递归方法计算整数中的零数,该方法采用单个int参数并返回参数具有的零数.

所以:

zeroCount(1000)
Run Code Online (Sandbox Code Playgroud)

会回来:

3
Run Code Online (Sandbox Code Playgroud)

您可以通过执行以下操作从整数中删除最后一位:"12345/10"= 1234

您可以通过执行以下操作从整数中获取最后一位数:"12345%10"= 5

这是我到目前为止:

public static int zeroCount(int num)
{
    if(num % 10 == 0)
        return num;
    else
        return zeroCount(num / 10);
}
Run Code Online (Sandbox Code Playgroud)

有没有人有任何建议或想法帮助我解决这个功能?

Cor*_*bin 5

在脑海中运行您的代码:

zeroCount(1000)
Run Code Online (Sandbox Code Playgroud)

1000 % 10 == 0所以你要回来了1000.这没有意义.


只需弹出每个数字并重复:

这听起来像是家庭作业,所以我会把实际的代码留给你,但它可以做到:

zeroes(0) = 1
zeroes(x) = ((x % 10 == 0) ? 1 : 0) + zeroes(x / 10)
Run Code Online (Sandbox Code Playgroud)

请注意,没有终止条件,它可以永远递归.


Bha*_*hah 5

public static int zeroCount(int num)
{
    if(num == 0)
       return 0;

    if(num %10 ==0)
        return 1 + zeroCount(num / 10);
    else
        return zeroCount(num/10); 
}
Run Code Online (Sandbox Code Playgroud)

这行得通