网易四的倍数

一开始卡在了Yes上,自己写成了YES,所以通过率为0。
然后就是题目本身,数据量很大,肯定不能全部存下来再操作(也没必要)。
希望最大化的利用能被四整除的和最小化奇数,能想到奇数放两边,但是一定要注意这时候分两种情况

1.没有仅能被2整除的
2.有仅能被2整除的
对于1,这个时候就是最大化4和最小化奇数的时候了,能被4整除的只要不小于奇数减一就好了
对于2,我们把仅能被二整除的放一边,让他自生自灭,这个时候就不能最大化的利用4了,因为有仅能被2整除的碍事,所以能被4整除的不能小于奇数的个数
import java.util.*;


public class Main {



    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        
        while(input.hasNext()){
        	int t = input.nextInt();
        	boolean[] res = new boolean[t];
        	for (int i = 0; i < t; i++) {
        		int n = input.nextInt();
        		int jiNumber = 0;
        		int can4Number = 0;
        		int can2Number = 0;
        		int temp = 0;
        		for (int j = 0; j < n; j++) {
        			temp = input.nextInt();
        			if (temp % 2 != 0) {
        				jiNumber++;
        			}else if (temp % 4 == 0) {
        				can4Number++;
        			}else if (temp % 4 != 0 && temp %2 == 0) {
        				can2Number++;
        			}
					
        		}
        		if (can2Number == 0) {
        			res[i] = !(can4Number < jiNumber -1);
        		}else{
        			res[i] = !(can4Number < jiNumber );
        		}
				
				
				
        	}
        	for (int i = 0; i < res.length; i++) {
        		System.out.println(res[i] ? "Yes" : "No");	
        	}
        		
        } 

    }
    
}
(粘贴过来缩进有点问题)
#网易#
全部评论
计算能被4整出的c1和不能被整除的c2 判断c1大于等于c2-1 AC
点赞 回复 分享
发布于 2017-09-09 17:36
我也是这样做的,只是输出时候没有一起输出,然后通过率为0,很尴尬,我还以为算法不对……
点赞 回复 分享
发布于 2017-09-09 17:30
没想出来 还是太咸鱼了
点赞 回复 分享
发布于 2017-09-09 17:36
一直90%,后来才知道为啥错了, 我一直以为如果只有一个数,4的倍数就是Yes,不是4的倍数就是No,然而,其实只要一个数就是Yes。
点赞 回复 分享
发布于 2017-09-09 17:39

相关推荐

牛客737698141号:他们可以看到在线简历的。。。估计不合适直接就拒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务