GESP2023年12月认证C++三级( 第三部分编程题(1)小猫分鱼)
参考程序:
#include<bits/stdc++.h>
int main()
{
long long n, i, j, k, ans;
bool flag;
scanf("%lld%lld", &n, &i); // 输入 N 和 i
k = 1; // 初始化 k
while(true)
{
flag = true; // 假设当前 k 满足条件
ans = k * n + i; // 计算最后一只小猫分鱼时的鱼数
for(j = 1; j < n; j++) // 从倒数第二只小猫倒推到第一只小猫
{
if(ans % (n - 1) != 0) // 检查是否满足条件
{
flag = false; // 不满足条件,跳出循环
break;
}
ans = ans / (n - 1) * n + i; // 计算上一只小猫分鱼时的鱼数
}
if(flag) break; // 如果满足条件,退出循环
k++; // 否则,增加 k 的值,继续尝试
}
printf("%lld\n", ans); // 输出结果
return 0;
}