解题思路:
话不多说,看注释
注意事项:
分糖果时,是同时分。所以刚刚得到的糖果不拿来分
参考代码:
#include<stdio.h>
int main(){
int n,i,a[100];
while(scanf("%d",&n)==1){
int t=0;
for(i=0;i<n;i++)scanf("%d",&a[i]);
while(1){ //当全部人有相同糖果时,跳出
int c=0,k;
for(i=0;i<n-1;i++){ //判断是否全部相等,用c作标记
if(a[i]!=a[i+1]){
c=1;break;
}
}
if(c){
k=0; //暂时记录每个人要分出糖果
for(i=0;i<n-1;i++){
k=(a[i]-k)/2; //计算要分得糖果,减去刚得到的
a[i]-=k; //分去后剩下的
a[i+1]+=k; //下一个小朋友的到后总的糖果
}
k=(a[i]-k)/2; //最后一个小朋友,分给第一个小朋友
a[i]-=k;
a[0]+=k;
for(i=0;i<n;i++){ //一轮过后,基数个糖果的小朋友数量加一
if(a[i]%2==1){
t++; //老师发一个
a[i]+=1;
}
}
}
else{
break;
}
}
printf("%d\n",t);
}}
0.0分
0 人评分
C语言训练-计算1977!* (C++代码)浏览:859 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:644 |
拆分位数 (C语言代码)浏览:1328 |
简单的a+b (C语言代码)浏览:573 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:2081 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:531 |
WU-整除问题 (C++代码)浏览:612 |
WU-C语言程序设计教程(第三版)课后习题11.11 (C++代码)(想学链表的可以看看)浏览:1358 |
蛇行矩阵 (C语言代码)浏览:507 |
输出九九乘法表 (C语言代码)浏览:1048 |