网易第一题AC

/**
分别统计能除4的数c1,被2除的数c2,其他的数c3。
若c2的个数为奇数,则说明需要一个能被4整除的数相乘,c3-c1<=0;
若c2的个数为偶数,说明不需要能被4整除的数帮忙,c3-c1<=1,说明其他数只能比c1多一个

**/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
  static String []ans={"Yes","No"};
	public static void main(String[] args) throws IOException {
	    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		String s=null;
       while((s=br.readLine())!=null){
    	   int t=Integer.valueOf(s.trim());
    	   for(int k=0;k<t;k++){
    		   long n=Long.valueOf(br.readLine().trim());
    		   long c1=0;
    		   long c2=0;
    		   long c3=0;
    		   String []sr=br.readLine().trim().split(" ");
    		   for(int i=0;i<n;i++)
    		   {
    			   long num=Long.valueOf(sr[i]);
        		   if(num%4==0)c1++;
        		   else if(num%2==0)c2++;
        		   else c3++;
        	   }
        	   if(c2%2==0){
        		   if(c3-c1<=1){
        			   System.out.println(ans[0]);
        		   }
        		   else System.out.println(ans[1]);
        	   }else{
        		  if(c3-c1<=0){
        			  System.out.println(ans[0]);
        		  }
        		  else
        			  System.out.println(ans[1]);
        	   } 
    	   }
       }
	}
}


全部评论
不需要吧   只要判断 num(4的倍数) >= num(奇数)即可    偶数全扔前面  然后一个4X 一个奇数就可以了 如 2 2 2 4 7
点赞 回复 分享
发布于 2017-09-09 17:21

相关推荐

11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务