hh


私信TA

用户名:huan

访问量:1032

签 名:

等  级
排  名 64065
经  验 175
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 cd
专  业

  自我简介:

解题思路:

1、可以先建立一个宏定义  

2、在输入的取值范围下输入数据,否则返回-1  

3、检查所有人的糖果数是否相等  

4、n-1之前的数可以利用循环求出  

5、a[0]为特殊值单独做  

6、给奇数糖的孩子补上糖果,变成偶数。





注意事项:

i的取值范围 


参考代码:

#include<stdio.h>

#define max 100

int a[max];

int main()

{

int n,i,count=0;

scanf("%d",&n);

if(n<=2||n>=100)

return -1;

for(i=0;i<n;i++)//输入糖果 

  scanf("%d",&a[i]);

if(a[i]<2||a[i]>100||(a[i]%2!=0))

return -1;

      }

while(1)

{

for(i=1;i<n;i++)

{

if(a[i]!=a[0])//检查所有小朋友的糖果数是否相等  

break;

}

if(i==n)

break;

int tmp=a[0];

for(i=0;i<n-1;i++)

{

a[i]=(a[i]+a[i+1])/2;//每个小朋友都把自己的糖果分一半给左手边的孩子  

}

a[i]=(a[i]+tmp)/2;

 

 for(i=0;i<n;i++)//一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。

 {

  if(a[i]%2!=0)

  {

  a[i]++;

  count++;

 }

      }

    }

   printf("%d",count);

  return 0;


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区