程序猿


私信TA

用户名:uq_95684626596

访问量:60

签 名:

加油,刷题人

等  级
排  名 26367
经  验 531
参赛次数 0
文章发表 2
年  龄 18
在职情况 学生
学  校 b站大学
专  业

  自我简介:

TA的其他文章

解题思路:

注意事项: 注意最后一个不能加入到循环中去

参考代码:

#include<stdio.h>
int panduan(int arr[],int n);
int panduan(int arr[],int n)      //定义一个函数,用于判断得到的糖果是否相等
{
    int a=0;
    for(int i=1;i<n;i++)
    {
        if(arr[0]==arr[i])
            a=1;
        else
        {
            a=0;
            break;
        }
    }
    if(a!=0)
        return 0;
    if(a==0)
        return 1;
}
int main()
{
    int n;
    scanf("%d",&n);
    int arr[n];
    int count=0,i=0,m=0;
    for(i=0;i<n;i++)             //输入糖果个数
    {
        scanf("%d",&arr[i]);
    }
    m=arr[0]/2;                 //分糖果,解题重点
    for(i=0;i<n-1;i++)
    {
         arr[i]=arr[i]/2+arr[i+1]/2;
    }
    arr[n-1]=arr[n-1]/2+m;
    int b=panduan(arr,n);
    while(b)                  //循环,直到所有的糖果个数都相等
    {
        for(int i=0;i<n;i++)
        {
            if(arr[i]%2!=0)
            {
               count++;
               arr[i]=arr[i]+1; 
            }
        }
        m=0;
        m=arr[0]/2;
        for(i=0;i<n-1;i++)
        {
            arr[i]=arr[i]/2+arr[i+1]/2;
        }
        arr[n-1]=arr[n-1]/2+m;
        b=panduan(arr,n);
    }
    printf("%d",count);      //输出
    return 0;
}


 

0.0分

0 人评分

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

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区