解题思路:用一个数组存储各个学生手中糖果的初始数量 用for循环对每个同学手中的糖果进行自身减半同时加上右边同学手中糖果的一半。
fun()函数是用来判断数组中的元素是否完全相等
注意事项:在计算最后一个同学的糖果时要事先保留好第一个同学的糖果数量
参考代码:
#include<iostream>
using namespace std;
int a[100];
int n;
int fun(int *a)
{
int flag=1;
int res=a[0];
for(int i=1;i<n;i++)
{
if(res!=a[i])return 0;
}
return flag;
}
int main()
{
cin>>n;
int count=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
while(fun(a)==0)
{
int start=a[0];
for(int i=0;i<n;i++)
{
if(i==n-1)a[i]=a[i]/2+start/2;
else a[i]=a[i]/2+a[i+1]/2;
}
for(int i=0;i<n;i++)
{
if(a[i]%2==1)
{
count++;
a[i]+=1;
}
}
}
cout<<count;
return 0;
}
0.0分
0 人评分
十->二进制转换 (C++代码)(零和负数需要特殊处理)浏览:1040 |
C语言训练-自守数问题 (C语言代码) long long浏览:1066 |
C二级辅导-公约公倍 (C语言代码)浏览:2122 |
小九九 (C语言代码)浏览:819 |
简单的a+b (C语言代码)浏览:760 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:277 |
母牛的故事 (C语言代码)浏览:932 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:879 |
WU-整除问题 (C++代码)浏览:612 |
简单的a+b (C语言代码)浏览:419 |