这里开一个二维数组,num[105][2]; 我也不知道N有多少,随便开的, 那么这里num[i][0] 表示当前 第 i 个人拥有的糖果数,num[i][1]表示他上面一个人分给他的糖果数,具体实现见代码注释
这里要注意的就是:先给糖果,然后如果有人糖果数为奇数,就加1 ,然后再判断是不是相等
上马:
#include <iostream>
#include <cstring>
using namespace std;
int num[105][2];
int N;
bool end()//判断是否end过程中,处理分糖果
{
bool flag = true;//是否end
for(int i = 0; i < N; i ++)
{
num[i][0] = num[i][0] + num[i][1]; //先处理
if(num[i][0] % 2 != 0) num[i][0] ++;//奇数就加1
}
for(int i = 0; i < N-1; i ++)
{
if(num[i][0] != num[i+1][0]) flag = false;//两两中相等就都相等
}
return flag;
}
int main()
{
while(cin >> N && N)
{
me