1 条题解

  • 0
    @ 2025-9-6 13:34:48

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int n, i, s; // 定义小猫的数量 N,每次扔到海里的鱼的数量 i,和海滩上的鱼数量 s
    bool f; // 定义标记变量用于判断每个数是否可行
     
    int main()
    {
        cin >> n >> i; // 输入小猫的数量 N 以及每次扔到海里的鱼的数量 i
        for(long long k = 1; 1; k++) // 从 1 开始枚举海滩上的鱼数量
        {
            f = true; // 每个数都默认可行
            s = k * n + i; // 由于第一只小猫已经取走了一份,因此初始鱼的数量为 k * n + i
        	for(int j = 1; j <= n - 1; j++) // 处理每只小猫
        	{
                if(s % (n - 1) != 0) // 如果当前的鱼的数量除以 N-1 余数不为 0,则说明无法平均分配
                {
                    f = false; // 当前的鱼的数量不可行
                    break; // 退出循环
                }
        	    s = s * n / (n - 1) + i; // 计算已拿走一份的剩余鱼数,每只小猫拿走一份
        	}
            if(f) break; // 如果当前的鱼的数量可行,则退出循环
        }
        cout << s << endl; // 输出最少的鱼数,使得每只小猫都能吃到鱼
        return 0;
    }
    
    • 1

    信息

    ID
    5502
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者