gpt4 book ai didi

java - 统计Java中 '8'问题的个数

转载 作者:行者123 更新时间:2023-11-29 08:14:51 24 4
gpt4 key购买 nike

我遇到了以下问题。

问题陈述:

给定一个非负整数 n,返回 8 作为数字出现的次数,除了 8 和紧邻其左边的另一个 8 计数加倍,所以 8818 产生 4。

注意:mod (%) 除以 10 得到最右边的数字(126 % 10 是 6),而除以 (/) 除以 10 会去掉最右边的数字(126/10 是 12)。

上述问题必须在不使用递归和不使用任何公式的情况下解决。

函数签名是public int count8(int n)

例子是:

count8(8) → 1     
count8(818) → 2
count8(8818) → 4

我从其中一个编程论坛遇到了这个问题。我不知道如何开始解决这个问题,我想解决它,但我真的不知道从哪里开始。

最佳答案

使用 mod 运算符执行此操作的方法是使用 %10 获取最后一位数字,并使用/10 删除最后一位数字,本质上是遍历数字。如果你 %10 并得到一个 8 你可以增加一个计数,你也可以保留一个标志让你知道你看到的最后一个数字是否是 8 这样你就知道如何增加你的计数

boolean lastWas8 = false;int count = 0;while (n != 0){    int digit = n % 10;    if (digit == 8)    {        if (lastWas8) count++;        count++;        lastWas8 = true;    }    else lastWas8 = false;    n/=10;}return count;

关于java - 统计Java中 '8'问题的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5516843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com