解题思路:
注意事项:
参考代码:
#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 人评分
C二级辅导-温度转换 (C语言代码)浏览:2330 |
printf基础练习2 (C++代码)(受教了,,%#o和%#x的用途)三人行,必有我师,,多看题解会有收获浏览:1873 |
C二级辅导-同因查找 (C语言代码)浏览:556 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:669 |
川哥的吩咐 (C++代码)浏览:1014 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:546 |
WU-图形输出 (C++代码)浏览:802 |
简单的for循环浏览:1409 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:526 |
蛇行矩阵 (C语言代码)浏览:501 |