【华为OJ】201301 JAVA 题目0-1级
2015-10-14 22:45
399 查看
该题的思路是:
首先将遍历整个数组
1、 把所有5倍数的数加起来存在一个变量num1 中
2、把所有3倍数的数加起来存在一个变量num2 中
3、剩余的数据存在一个list中
把两个变量相减得到一个差值 dif=num1 -num2
首先将遍历整个数组
1、 把所有5倍数的数加起来存在一个变量num1 中
2、把所有3倍数的数加起来存在一个变量num2 中
3、剩余的数据存在一个list中
把两个变量相减得到一个差值 dif=num1 -num2
import java.util.ArrayList; import java.util.Scanner; public class Main { static Scanner scanner; public static void main(String[] args) { // TODO Auto-generated method stub scanner=new Scanner(System.in); int len=scanner.nextInt(); int[]arrays=new int[len]; for(int i=0;i<len;i++){ arrays[i]=scanner.nextInt(); } boolean flag=SplitArrysIntoTwoArrays(arrays); System.out.println(flag); } private static boolean SplitArrysIntoTwoArrays(int[] arrays) { int fiveCount=0; int threeCount=0; ArrayList<Integer> arrayList=new ArrayList<Integer>(); for(Integer arr:arrays){ if(arr%5==0){ fiveCount+=arr; }if(arr%3==0){ threeCount+=arr; }else { arrayList.add(arr); } } int diff=fiveCount-threeCount; ArrayList<Integer> arrayList2=new ArrayList<Integer>(); arrayList2.add(0); for(Integer alist:arrayList){ arrayList2=jizhihanshu(arrayList2,alist); } for(Integer sum:arrayList2){ if(sum==diff||sum==diff*(-1)){ return true; } } return false; } private static ArrayList<Integer> jizhihanshu( ArrayList<Integer> arrayList2, Integer alist) { ArrayList<Integer> arrayList3=new ArrayList<Integer>(); for(Integer alist2: arrayList2){ arrayList3.add(alist2+alist); arrayList3.add(alist2-alist); } return arrayList3; } }
相关文章推荐
- spring整合消息队列rabbitmq
- 动态执行的方法java
- Java反射
- null pointer at org.springframework.beans.PropertyEditorRegistrySupport
- 给出 《java学习笔记》 PDF格式
- 黑马程序员一一高级开发工具Eclipse
- Spring 容器初始化方法
- java缓存技术
- java判断一个字符串是否为空的方法总结
- 学习心得(Java语言)
- Java从入门到精通14-GridLayout网格布局
- springMVC的HandlerInterceptor拦截器
- 关于java中有符号数转换成无符号数的相关问题
- Java从入门到精通13-FlowLayout布局
- 抽象工厂模式(java语言实现)
- 《深入理解java虚拟机》之内存模型与安全
- Java内存泄露监控工具__JVM监控工具介绍
- 转换java keytools的keystore证书到OPENSSL的PEM格式文件
- java锁机制
- Eclipse操作技巧