📌  相关文章
📜  C++程序检查给定数字的所有旋转是否大于或等于给定数字

📅  最后修改于: 2022-05-13 01:54:19.235000             🧑  作者: Mango

C++程序检查给定数字的所有旋转是否大于或等于给定数字

给定一个整数x ,任务是找出元素上的每个 k 循环移位是否产生一个大于或等于同一元素的数字。
整数x的 k 循环移位是一个函数,它删除x的最后k位并将它们插入到它的开头。
例如, 123的 k 循环移位对于k=1312 ,对于k=2231 。如果满足给定条件,则打印Yes否则打印No
例子:

方法:简单地找到数字的所有可能的 k 循环移位,并检查是否都大于给定的数字。
下面是上述方法的实现:

C++
// CPP implementation of the approach
#include
using namespace std;
  
void CheckKCycles(int n, string s) 
{
    bool 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.substr(i) + s.substr(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) 
    {
        cout << ("Yes");
    }
    else
    {
        cout << ("No");
    }
}
  
// Driver code
int main() 
{
    int n = 3;
    string s = "123";
    CheckKCycles(n, s);
    return 0;
}
  
/* This code contributed by Rajput-Ji */


输出:
Yes

请参阅完整文章检查给定数字的所有旋转是否大于或等于给定数字以获取更多详细信息!