📜  Java程序旋转数字的位(1)

📅  最后修改于: 2023-12-03 15:32:05.294000             🧑  作者: Mango

Java程序旋转数字的位

在Java中,我们可以使用循环和数学运算来对数字进行旋转。

1. 旋转数字的位

旋转数字的位指的是将一个数字的各个位数循环右移k位,并将移出的位数放到最高位。例如,将数字12345678往右旋转3位,得到的结果是67812345。

2. 实现方法

首先,我们需要将整数转换为字符串,然后将字符串的长度作为旋转的基准。接着,通过循环将字符串中的每个字符进行移位操作,最后将移位后的字符串转换回整数。

public static int rotate(int num, int k) {
    String str = Integer.toString(num);
    int len = str.length();
    k = k % len;
    char[] chars = str.toCharArray();

    // 移动字符数组中的每个字符
    for (int i = 0; i < k; i++) {
        char temp = chars[len - 1];
        for (int j = len - 1; j > 0; j--) {
            chars[j] = chars[j - 1];
        }
        chars[0] = temp;
    }

    // 将字符数组转换为整数
    StringBuilder sb = new StringBuilder();
    for (char c : chars) {
        sb.append(c);
    }
    return Integer.parseInt(sb.toString());
}
3. 测试样例
public static void main(String[] args) {
    int num = 12345678;
    int k = 3;
    int result = rotate(num, k);
    System.out.println(result); // 输出 67812345
}
4. 总结

通过本文的介绍,我们了解了Java程序旋转数字的位的实现方法。当然,还有其他方法可以实现,读者可以自行探索。