一共有n只兔子,m包萝卜,每一包中的萝卜不确定,是否可以从中选择随机包,使得这些萝卜可以被兔子平分,n,m,以及每包中的萝卜数量,均有自己输入,判断是否能找到一种组合使得萝卜能被兔子平分,使用c++进行写
时间: 2024-05-11 17:13:53 浏览: 4
思路:
1. 首先,我们需要计算出所有萝卜的总数sum。
2. 如果sum不能被n整除,那么肯定不能平分。直接输出"NO"。
3. 如果sum可以被n整除,那么我们需要判断每个包中的萝卜数是否都能被sum/n整除。
4. 如果存在一个包中的萝卜数不能被sum/n整除,那么肯定不能平分。直接输出"NO"。
5. 如果所有包中的萝卜数都能被sum/n整除,那么说明可以平分。输出"YES"。
代码实现:
```c
#include<stdio.h>
int main()
{
int n, m, sum = 0, i, j, flag = 1;
// flag表示是否能平分,初值为1,表示能平分
scanf("%d%d", &n, &m);
int carrot[m];
for(i = 0; i < m; i++)
{
scanf("%d", &carrot[i]);
sum += carrot[i];
}
if(sum % n != 0)
{
printf("NO");
return 0;
}
int avg = sum / n;
for(i = 0; i < m; i++)
{
if(carrot[i] % avg != 0)
{
flag = 0;
break;
}
}
if(flag == 1)
printf("YES");
else
printf("NO");
return 0;
}
```