如何解决java中int为0时,如何计算整数出现的次数?
我是 Java 初学者,我编写了一个程序来计算 int d 在给定整数 n 中出现的次数,即 n = 988,d = 8 返回 2。 它适用于大多数情况(负数、正数等),但我的代码说 n = 0,d = 1 包含 1,这是错误的。如何在不使整数 10 的情况下向 0 添加一个位置(我在第一个 if 语句中错误地这样做了)。
public class countingints{
public static int count(int n,int d) {
n = Math.abs(n);
if(n == 0) {
n = 10;
}
int result = 0;
while (n > 0) {
int place = n % 10;
if (place == d) {
result++;
}
n /= 10;
}
return result;
}
public static void main(String[] args) {
System.out.println(count(0,1)); //SHOULD return 0
System.out.println(count(0,5)); //returns 0
}
}
解决方法
if(n == 0) {
n = 10;
}
```
计算机只是按照指令进行操作。如果 n 为 0,则 n 设置为 10,10 包含单个 1
数字。
如果您使用此 if (n == 0) n = 10
行的意图是为了确保例如count(0,0)
返回 1,然后只需将其编码为:if (n == 0 && d == 0) return 1;
- 这是一个奇怪的情况,因为从数学上讲,“数字 0 出现多少次”这个问题很棘手。你也可以把 15
写成 0015
,在很多方面,0
只是一种写法,数字真的可以被认为只是一个没有数字的完全空白的字符串全部。
关键是,当您询问一个数字中有多少个零时,您的算法或多或少是合乎逻辑的,尤其是当您询问数字 0 中有多少个零时。”奇怪的情况”通常意味着他们需要硬编码,所以,这样做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。