我的代码在读取的文本文件中计数了错误的零,并且我不确定如何解决它。随机数比我需要的多一个或根本不读。有人可以帮忙吗?
private static int count0(int n, boolean zero) {
if (n <= 0)
return 0;
else if (n % 10 == 0)
return 1 + (zero ? 1 : 0) + count0(n / 10, true);
else
return count0(n / 10, false);
}
public static int count0(int n) {
return count0(n, false);
}
enter code here
最佳答案
摆脱“零”,我们有
n为0->计数0
否则,如果此数字为零,则加1,并且
计算左边的零位数
private static int count0(int n) {
if (n <= 0)
return 0;
else
return (n % 10 == 0 ? 1 :0) + count0(n / 10);
}
这适用于(例如)原始n = 10,但IMO不适用于原始n = 0;答案一定是1?也就是说,0是特例。 “ 10”和“ 0”都具有一个零。