解题思路:
注意事项:
参考代码:
#include"bits/stdc++.h" using namespace std; int main() { int a,b[110]={0},c[110]={0},d[110]={0},v[110]={0},n=0; cin>>a; for(int i=1;i<=a;i++){ cin>>b[i]; } while(true){ int gg=0; for(int i=1;i<=a;i++){//将数组b的值赋给数组d,用于后续判断 d[i]=b[i]; } for(int i=1;i<=a;i++){//判断数组内的数是否完全相等 for(int j=1;j<=a;j++){ if(d[i]-d[j]==0){ gg++; } } } if(gg==a*a){//若gg==a*a,则说明数组内所有数相等,可以退出循环 break; } for(int i=1;i<=a;i++){//将数组b的值的一半赋给数组c,用于后续计算 c[i]=b[i]/2; } for(int i=1;i<=a;i++){//将数组c的值赋给数组v,便于后续计算 v[i]=c[i]; } for(int i=1;i<=a;i++){//按照题目要求,计算 if(i==a){ c[a]=c[a]+v[1]; } else{ c[i]=c[i]+v[i+1]; } } for(int i=1;i<=a;i++){//判断数组c的数是否为偶数,不是则+1,n计数器+1及补糖数 if(c[i]%2==1){ n++; c[i]+=1; } } for(int i=1;i<=a;i++){//将数组c的值赋给数组b,便于下一次循环 b[i]=c[i]; } } cout<<n<<endl; return 0; }
0.0分
0 人评分