别看我只是一只羊


私信TA

用户名:bkwzsyzy

访问量:4410

签 名:

等  级
排  名 2371
经  验 2339
参赛次数 1
文章发表 23
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include<stdio.h>
int main()
{
	int N;
	scanf("%d",&N);
	int a[N];
	
	
	
	for(int i=0;i<N;i++){       //输入数组
	    
	    int b;
	    scanf("%d",&b);
	  if(b%2==0)
	  {
	      
	      if(b>=2&&b<=1000){
	        a[i]=b;
	    }
	}
}
    
    int w=0;
    while(1){
  //  printf("1");
      
        int ok=1;//另标志位为1,为0是表示不满足条件,需要分糖果
        for(int i=0;i<N-1;i++){
            if(a[i]!=a[i+1]){
                ok=0;//一旦有一位不相同就标志位置0并跳出这个循环
          //      printf("3");
                break;
            }
        }
     //  printf("2");

    //    printf("%d",ok);
       
     
      if(ok==0){
   //       printf("4\n");
            int f;
            f=a[0]/2;
            for(int j=0;j<N;j++){   //糖果分一半
                a[j]=a[j]/2;
            
                if(j>=1){
                
                a[j-1]=a[j]+a[j-1];
                }
            }
                a[N-1]=a[N-1]+f;
            
            
    
    /*
            for(int i=0;i<N;i++){       //输出数组
            printf("%d",a[i]);
    }
    */
         //   printf("\n");
            for(int i=0;i<N;i++){       //补糖果
            if(a[i]%2!=0){
            a[i]++;
            w++;
        }
    }
            
       /*     for(int i=0;i<N;i++){       //输出数组
            printf("%d",a[i]);
    }
             printf("\n");
    */
   }
   
     else{
           printf("%d",w);//满足条件的情况下j不会置0,进入这个输出后brake跳出while循环,至此整个函数运行完毕
            break;
        }
    

}

}


 

0.0分

0 人评分

  评论区

  • «
  • »