hdoj1034 Candy Sharing Game(简单题)

来源:互联网 发布:工业设备数据采集 编辑:程序博客网 时间:2024/06/08 18:16

这种类型的题目只要理解了题意就很容易写出代码。

题意:n个人绕成一个圈,每个人手上都有偶数个糖果,每一轮的规则是:每个人同时把自己一半的糖果分给自己右边的人,那些一轮下来

手里的糖果数变成奇数的同学会多给一颗糖。再进行下一轮分享,直到每个人手里的糖果都一样多,要求输出进行的轮数和最后每个人手上的糖果数。

#include<stdio.h> #include<string.h>using namespace std;int a[25000],b[25000];int n;int finish(int a[]){int i;if(a[0]!=a[n-1])return 0;else{for(i=0;i<n-1;i++){if(a[i]!=a[i+1]){break;}}if(i==n-1)return 1;else return 0;}}int main(){    int i,count,k,temp;while(scanf("%d",&n)&&n!=0){   count=0;k=0;memset(b,0,sizeof(b));for(i=0;i<n;i++)scanf("%d",&a[i]);while(!k){for(i=0;i<n;i++){b[i]=(a[i]+a[(i-1+n)%n])/2;if(b[i]%2==1)b[i]=b[i]+1;}for(i=0;i<n;i++)a[i]=b[i];count++;k=finish(a);}printf("%d %d\n",count,a[0]);}return 0;}


原创粉丝点击