📌  相关文章
📜  计算可被 4 整除的旋转次数的 C++ 程序(1)

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

计算可被 4 整除的旋转次数的 C++ 程序

本文介绍一段 C++ 代码,用于计算一个字符串的所有旋转次数中有多少是可以被 4 整除的。旋转次数指的是将字符串顺时针旋转一定次数所得到的新字符串。

代码实现
#include <iostream>
#include <string>

using namespace std;

int countRotations(string s) {
    int count = 0;
    int n = s.length();
    for (int i = 0; i < n; i++) {
        int rotation = stoi(s.substr(i) + s.substr(0, i));
        if (rotation % 4 == 0) {
            count++;
        }
    }
    return count;
}

int main() {
    string s;
    cin >> s;
    int res = countRotations(s);
    cout << res << endl;
    return 0;
}
代码解释

该代码首先定义了一个 countRotations 函数,它用于计算一个给定字符串的所有旋转次数中有多少是可以被 4 整除的。函数参数为一个字符串 s。在函数内部,首先定义一个计数器 count,用于记录可被 4 整除的旋转次数的个数。然后,使用 n 来存储字符串 s 的长度。

接下来使用一个 for 循环,依次枚举字符串中每一个字符所对应的旋转次数。具体而言,我们从字符串的第一个字符开始,向右循环移动。对于每一个移动量,我们分别将字符串分成两部分,即左半部分和右半部分。然后拼接两部分得到新字符串,并将新字符串转换成整数。如果该整数可以被 4 整除,则将计数器 count 的值加 1。

最后,函数返回计数器 count

main 函数中,我们首先读入一个字符串,然后调用 countRotations 函数获得可被 4 整除的旋转次数的个数,并将其输出到控制台窗口。

使用示例

下面是一个使用示例:

输入:123456
输出:2

该示例中,字符串 123456 有 6 个字符,因此可以构造出 6 种旋转次数。其中,旋转次数为 4 和 8 的旋转所得到的字符串可以被 4 整除,因此函数的返回值为 2。