📌  相关文章
📜  用于检查给定数字的所有旋转是否大于或等于给定数字的Java程序(1)

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

用于检查给定数字的所有旋转是否大于或等于给定数字的Java程序介绍

这是一个Java程序,用于检查给定数字的所有旋转是否大于或等于给定数字。该程序基于以下假设:一个数字的所有旋转都可以通过将数字的一部分移动到左侧或右侧来实现。

该程序的输入是一个数字,输出是一个布尔值。如果该数字的所有旋转都大于或等于该数字,则输出true;否则,输出false。

程序的核心思路是将给定数字的所有旋转计算出来,并逐一检查它们是否大于或等于给定数字。旋转的计算是通过将数字的一部分移动到左侧或右侧实现的。具体来说,可以将数字的第一个字符移到最后,然后检查得到的新数字是否大于或等于给定数字。如果新数字小于给定数字,则不需要继续检查,直接输出false。如果所有旋转都大于或等于给定数字,则输出true。

下面是程序的代码片段:

public static boolean checkRotation(int num) {
    String str = String.valueOf(num); // 将数字转为字符串
    for (int i = 0; i < str.length(); i++) {
        String rotated = str.substring(i) + str.substring(0, i); // 计算旋转后的数字
        if (Integer.parseInt(rotated) < num) { // 检查旋转后的数字是否小于原数字
            return false;
        }
    }
    return true; // 所有旋转都大于或等于原数字,返回true
}

程序的输入是一个整数num,表示要检查的数字。程序首先将该数字转为字符串,然后遍历字符串的所有字符。对于每个字符,都可以通过将数字的一部分移到左侧或右侧来计算旋转后的数字。具体来说,可以使用substring方法将字符串分为两部分,然后将第一部分移到字符串的末尾,然后将两部分拼接起来即可。

旋转后的数字计算完成后,程序使用Integer.parseInt方法将其转为整数,并与原数字比较。如果旋转后的数字小于原数字,则直接返回false。如果所有旋转都大于或等于原数字,则返回true。

该程序的时间复杂度为O(n^2),因为它需要对给定数字的所有旋转进行计算和比较。但是,由于数字的长度通常很小,因此该程序的运行时间非常短,可以满足大部分应用需求。