本文共 845 字,大约阅读时间需要 2 分钟。
此题无任何技巧,无任何套路,按着题意直接代码就好。
代码如下:
#include#include #include using namespace std;int a[10005];int main(){ int n; int i,sum,flag,last,temp; int cnt; while(cin>>n&&n) { cnt=0;//sum= for(i=0;i<=n-1;i++) { cin>>a[i]; // sum+=a[i]; //一开始是用sum标志游戏是否结束,但其实这样不行 } if(n>1) flag=1; while(flag) { cnt++; for(i=0;i<=n-1;i++) { temp=a[i]; if(i==0) last=a[0]; else { a[i]=a[i]/2+last/2; if(a[i]%2!=0) { a[i]++; } last=temp; }//cout< <<' '; } a[0]=a[0]/2+last/2; if(a[0]%2!=0) { a[0]++; } int f=1; for(i=1;i<=n-1;i++) { if(a[i]!=a[i-1]) { f=0;break; } } if(f) flag=0; } /*for(i=0;i<=n-1;i++) cout< <<' '; cout<
小结:原问题有需要码出多少个回合,因此需要考虑过程,由此想到会不会是到纯裸的题,而不是什么由输入直接出答案的东西。
转载地址:http://mfdci.baihongyu.com/