5 条题解

  • 0
    @ 2025-7-14 17:24:31
    
    

    #include using namespace std;

    int n, m, s, f, t; bool a[101]; // 根据题意开出数组大小

    int main() { cin >> n >> m; // 共n人,报到m出 for (t = 1; t <= n; ++t) a[t] = false; // 初始化所有人未出圈

    f = 0; t = 0; s = 0; // 初始化计数器
    do {
        ++t; // 逐个枚举圈中的所有位置
        if (t == n + 1) t = 1; // 数组模拟环状,最后一个与第一个相连
        if (a[t] == false) ++s; // 第t个位置上有人则报数
        if (s == m) { // 当前报的数是m
            s = 0; // 计数器清零
            cout << t << " "; // 输出出圈人的编号
            a[t] = true; // 标记此人已出圈
            f++; // 出圈人数增加
        }
    } while (f != n); // 直到所有人都出圈为止
    
    return 0;
    

    }

    信息

    ID
    274
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    43
    已通过
    9
    上传者