3426.糖果分享游戏
⭐️难度:简单 ⭐️类型:模拟 📖题目:题目链接 
⭐️思路: 以{2,4,6,8}为例,打下表: 
步骤: 1、用一个v2数组存糖果数,避免分享时覆盖原来数据; 2、分享时记得减去一半,然后再加上左边小朋友的一半,也就是+ (v2[index] / 2); 3、每完成一轮分享就检查一次是否相等。
📚题解:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<vector> // vector不需要.h
#include<list>
using namespace std;
bool panduan(vector<int> v) {
int size = v.size();
int num = v[0]; // 取一个元素进行判断:是否每一个元素都相等
for (int i = 0; i < size;i++) {
if (v[i] != num) {
return false;
}
}
return true;
}
void share(vector<int>& v) { // 使用c++的引用
// 注意:是在原先拥有的糖果数上进行分享,将糖果数先复制一份到v2
vector<int> v2 = v;
int size = v.size();
for (int i = 0;i < size;i++) {
int index;
if (i == 0) {
index = size – 1;
}
else {
index = i – 1;
}
v[i] = (v[i] / 2) + (v2[index] / 2);
}
for (int i = 0;i < size; i++) { // 糖果数是奇数的话:再+1
if (v[i] % 2 == 1) {
v[i]++;
}
}
}
int main() {
int n = 0;
while (scanf("%d", &n) != EOF) {
if (n == 0) {
break;
}
vector<int> v(n);
for (int i = 0;i < n; i++) {
scanf("%d",&v[i]);
}
int res = 0;
while(panduan(v) == false) {
share(v);
res++;
}
printf("%d %d\\n", res, v[0]);
}
return 0;
}
⭕️注意:

![P1328 [NOIP 2014 提高组] 生活大爆炸版石头剪刀布-171主机测评](https://www.171host.com/wp-content/uploads/2026/07/20260726085820-6a65cc2cd5b82-220x150.png)



