用于检查给定数字的所有旋转是否大于或等于给定数字的Java程序
给定一个整数x ,任务是找出元素上的每个 k 循环移位是否产生一个大于或等于同一元素的数字。
整数x的 k 循环移位是一个函数,它删除x的最后k位并将它们插入到它的开头。
例如, 123的 k 循环移位对于k=1是312 ,对于k=2是231 。如果满足给定条件,则打印Yes否则打印No 。
例子:
Input: x = 123
Output : Yes
The k-cyclic shifts of 123 are 312 for k=1 and 231 for k=2.
Both 312 and 231 are greater than 123.
Input: 2214
Output: No
The k-cyclic shift of 2214 when k=2 is 1422 which is smaller than 2214
方法:简单地找到数字的所有可能的 k 循环移位,并检查是否都大于给定的数字。
下面是上述方法的实现:
Java
// Java implementation of the approach
class GFG
{
static void CheckKCycles(int n, String s)
{
boolean ff = true;
int x = 0;
for (int i = 1; i < n; i++)
{
// Splitting the number at index i
// and adding to the front
x = (s.substring(i) + s.substring(0, i)).length();
// Checking if the value is greater than
// or equal to the given value
if (x >= s.length())
{
continue;
}
ff = false;
break;
}
if (ff)
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
}
// Driver code
public static void main(String[] args)
{
int n = 3;
String s = "123";
CheckKCycles(n, s);
}
}
/* This code contributed by PrinciRaj1992 */
输出:
Yes
请参阅完整文章检查给定数字的所有旋转是否大于或等于给定数字以获取更多详细信息!