测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A34492. 小猫分鱼问题描述海滩上有一堆鱼, N 只小猫来分。第一只小猫把这堆鱼平均分为 N 份,多了 i < N个,这只小猫把多的 个扔入海中,拿走了一份。第二只小猫接着把剩下的鱼平均分成 N 份,又多了 i 个,小猫同样把多的 个扔入海中,拿走了一份。第三、第四、……,第 只小猫仍是最终剩下的鱼分成 N 份,扔掉多了的 i 个,并拿走一份。编写程序,输入小猫的数量 N 以及每次扔到海里的鱼的数量 i ,…

填空题 中等

题目描述

小猫分鱼

问题描述

海滩上有一堆鱼, N 只小猫来分。第一只小猫把这堆鱼平均分为 N 份,多了 i < N个,这只小猫把多的 个扔入海中,拿走了一份。第二只小猫接着把剩下的鱼平均分成 N 份,又多了 i 个,小猫同样把多的 个扔入海中,拿走了一份。第三、第四、……,第 只小猫仍是最终剩下的鱼分成 N 份,扔掉多了的 i 个,并拿走一份。

编写程序,输入小猫的数量 N 以及每次扔到海里的鱼的数量  i ,输出海滩上最少的鱼数,使得每只小猫都可吃到鱼。

例如:两只小猫来分鱼 ,每次扔掉鱼的数量为 i=1,为了每只小猫都可吃到鱼,可令第二只小猫需要拿走1条鱼,则此时待分配的有3条鱼。第一只小猫待分配的鱼有 3*2+1=7 条。

输入描述

总共 2 行。第一行一个整数 N ,第二行一个整数 i。

保证 0< N < 10;i< N。

输出描述

一行一个整数,表示满足要求的海滩上最少的鱼数。

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

样例输入1

2

1

样例输出1

7

样例输入2

3

1

样例输出2

25

参考答案

#include <stdio.h> int main(int argc, char **argv) { long long n, i, j, k, ans; bool flag; scanf("%lld%lld", &n, &i); k = 1; while(true) { flag = true; 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++; } printf("%lld\n", ans); return 0; }
上一题 下一题