解题思路:
注意事项:
参考代码:
#include<iostream> using namespace std; int childs[102]; bool check(int n){ //检查是否满足所有小朋友相等 for(int i=1;i<n;i++) if(childs[i]!=childs[i+1]) return false; return true; } int giveCandle(int n){ //分发糖果 int aomunt=0; int temp=childs[n]; //中间值存储最后一位小朋友的糖数 for(int i=1;i<n;i++){ //因为最后一位小朋友的糖数量已经发生了变化,利用中间值 if(i==1){ //第一个小朋友把糖交给上一个小朋友,及数组末尾小朋友 childs[n]+=childs[1]/2; childs[1]/=2; continue; } childs[i-1]+=childs[i]/2; childs[i]/=2; } childs[n-1]+=temp/2; childs[n]-=temp/2; for(int i=1;i<=n;i++) if(childs[i]%2){ //奇数糖果数量加1 aomunt++; childs[i]++; } return aomunt; } int main(){ int n,sum=0; cin>>n; for(int i=1;i<=n;i++) cin>>childs[i]; while(!check(n)) sum+=giveCandle(n); cout<<sum<<endl; return 0; }
0.0分
0 人评分
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:643 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:658 |
printf基础练习2 (C语言代码)浏览:955 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:563 |
1050题解(结构体数组与结构体指针的使用)浏览:1216 |
C二级辅导-同因查找 (C语言代码)浏览:618 |
程序员的表白 (C语言代码)浏览:678 |
分糖果 (C语言代码)浏览:980 |
敲七 (C++代码)浏览:1119 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:820 |