网易的第一个编程题这样写为啥不行?



之前想过要统计能被4整除的个数和奇数的个数,但是1 4 1这样的数奇数小于能被4整除的个数而1 4 2 
又是另一种情况。所以用了下面的方法,来避免分情况讨论。试了几个例子正确,但就是不能通过。
能有大佬解答一下下面这种思路的问题吗?
帖子里发的第一题答案我看了,我想请大佬分析这种思路的可行性
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int t=in.nextInt(); while (t!=0) { int n=in.nextInt(); long[] A=new long[n]; boolean flag=true; for(int i=0;i<n;i++){ A[i]=in.nextLong(); } int[] B=new int[n]; for(int i=0;i<n;i++){ if (A[i]==0) { flag=false; } if(A[i]%4==0){ B[i]=4; }else if (A[i]%2==0) { B[i]=2; }else { B[i]=1; } } int mul=1; for(int i=0;i<n-1;i++){ mul=mul*B[i]*B[i+1]; } double m=Math.pow(4, n-1); if(mul%m==0){ System.out.println("Yes"); }else { System.out.println("No"); } //System.out.println(Arrays.toString(A)); t--; } } }



全部评论
只要4的倍数的个数不小于奇数的个数就行了
点赞 回复 分享
发布于 2017-09-09 19:02
2的倍数没有用,只要记录4的倍数和奇数就行了
点赞 回复 分享
发布于 2017-09-09 18:14
你只要用3个变量分别记录 奇数,2的倍数但不是4的倍数,4的倍数,这些出现的次数就行了啊
点赞 回复 分享
发布于 2017-09-09 18:00

相关推荐

仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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