题解 | #快速生长的草# java
快速生长的草
https://www.nowcoder.com/practice/de1d9ec0d53d4202ae83dc3b25a63166
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @param m int整型 * @return int整型 */ public int trailingZeroes (int n, int m) { // write code here int count = 0; while (m-- > 0) { n *= 2; if (n % 10 == 0) { count++; n /= 10; } if (n % 10 != 5 && n % 10 != 0) { break; } } return count; } }
题目涵盖了以下知识点:
- 循环控制
- 条件语句
- 整数运算
代码的文字解释如下:
- 初始化变量 count 用于记录满足条件的数值的个数。
- while 循环会迭代 m 次,其中每次循环会执行以下操作:将 n 乘以 2,相当于将数值的二进制表示左移一位,这可能会导致数值末尾添加零。如果 n 末尾有零(即 n % 10 == 0),则增加 count 计数并将 n 除以 10,以去除末尾的零。如果 n 末尾不是 5 或 0,说明不会再有末尾的零,于是跳出循环。
- 返回 count,表示满足条件的数值的个数。