网易第一题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

相关推荐

牛客51274894...:照片认真的吗,找个专门拍证件照的几十块钱整端正点吧,要不就别加照片
点赞 评论 收藏
分享
03-19 09:58
河海大学 Java
最喜欢春天的奇亚籽很...:同学,是小红书不是小哄书,一眼就能看到的错误
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务